226c0ddd0d
Enable Git to resolve its own binary location using a variety of OS-specific and generic methods, including: - procfs via "/proc/self/exe" (Linux) - _NSGetExecutablePath (Darwin) - KERN_PROC_PATHNAME sysctl on BSDs. - argv0, if absolute (all, including Windows). This is used to enable RUNTIME_PREFIX support for non-Windows systems, notably Linux and Darwin. When configured with RUNTIME_PREFIX, Git will do a best-effort resolution of its executable path and automatically use this as its "exec_path" for relative helper and data lookups, unless explicitly overridden. Small incidental formatting cleanup of "exec_cmd.c". Signed-off-by: Dan Jacques <dnj@google.com> Thanks-to: Robbie Iannucci <iannucci@google.com> Thanks-to: Junio C Hamano <gitster@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 lines
539 B
C
17 lines
539 B
C
#ifndef GIT_EXEC_CMD_H
|
|
#define GIT_EXEC_CMD_H
|
|
|
|
struct argv_array;
|
|
|
|
extern void git_set_exec_path(const char *exec_path);
|
|
extern void git_resolve_executable_dir(const char *path);
|
|
extern const char *git_exec_path(void);
|
|
extern void setup_path(void);
|
|
extern const char **prepare_git_cmd(struct argv_array *out, const char **argv);
|
|
extern int execv_git_cmd(const char **argv); /* NULL terminated */
|
|
LAST_ARG_MUST_BE_NULL
|
|
extern int execl_git_cmd(const char *cmd, ...);
|
|
extern char *system_path(const char *path);
|
|
|
|
#endif /* GIT_EXEC_CMD_H */
|