Linus Torvalds | e1b1039 | 2005-10-11 18:47:34 -0700 | [diff] [blame] | 1 | /* |
| 2 | * We put all the git config variables in this same object |
| 3 | * file, so that programs can link against the config parser |
| 4 | * without having to link against all the rest of git. |
| 5 | * |
| 6 | * In particular, no need to bring in libz etc unless needed, |
| 7 | * even if you might want to know where the git directory etc |
| 8 | * are. |
| 9 | */ |
| 10 | #include "cache.h" |
| 11 | |
| 12 | char git_default_email[MAX_GITNAME]; |
| 13 | char git_default_name[MAX_GITNAME]; |
| 14 | int trust_executable_bit = 1; |
Junio C Hamano | 5f73076 | 2006-02-08 21:15:24 -0800 | [diff] [blame] | 15 | int assume_unchanged = 0; |
Johannes Schindelin | f8348be | 2005-11-15 19:24:19 +0100 | [diff] [blame] | 16 | int only_use_symrefs = 0; |
Junio C Hamano | ab9cb76 | 2005-11-25 15:59:09 -0800 | [diff] [blame] | 17 | int repository_format_version = 0; |
Junio C Hamano | 4e72dce | 2005-11-27 16:09:40 -0800 | [diff] [blame] | 18 | char git_commit_encoding[MAX_ENCODING_LENGTH] = "utf-8"; |
Johannes Schindelin | 457f06d | 2005-12-22 23:13:56 +0100 | [diff] [blame] | 19 | int shared_repository = 0; |
Junio C Hamano | 2ae1c53 | 2006-02-27 14:47:45 -0800 | [diff] [blame] | 20 | const char *apply_default_whitespace = NULL; |
Linus Torvalds | e1b1039 | 2005-10-11 18:47:34 -0700 | [diff] [blame] | 21 | |
| 22 | static char *git_dir, *git_object_dir, *git_index_file, *git_refs_dir, |
| 23 | *git_graft_file; |
| 24 | static void setup_git_env(void) |
| 25 | { |
| 26 | git_dir = getenv(GIT_DIR_ENVIRONMENT); |
| 27 | if (!git_dir) |
| 28 | git_dir = DEFAULT_GIT_DIR_ENVIRONMENT; |
| 29 | git_object_dir = getenv(DB_ENVIRONMENT); |
| 30 | if (!git_object_dir) { |
| 31 | git_object_dir = xmalloc(strlen(git_dir) + 9); |
| 32 | sprintf(git_object_dir, "%s/objects", git_dir); |
| 33 | } |
| 34 | git_refs_dir = xmalloc(strlen(git_dir) + 6); |
| 35 | sprintf(git_refs_dir, "%s/refs", git_dir); |
| 36 | git_index_file = getenv(INDEX_ENVIRONMENT); |
| 37 | if (!git_index_file) { |
| 38 | git_index_file = xmalloc(strlen(git_dir) + 7); |
| 39 | sprintf(git_index_file, "%s/index", git_dir); |
| 40 | } |
| 41 | git_graft_file = getenv(GRAFT_ENVIRONMENT); |
| 42 | if (!git_graft_file) |
| 43 | git_graft_file = strdup(git_path("info/grafts")); |
| 44 | } |
| 45 | |
| 46 | char *get_git_dir(void) |
| 47 | { |
| 48 | if (!git_dir) |
| 49 | setup_git_env(); |
| 50 | return git_dir; |
| 51 | } |
| 52 | |
| 53 | char *get_object_directory(void) |
| 54 | { |
| 55 | if (!git_object_dir) |
| 56 | setup_git_env(); |
| 57 | return git_object_dir; |
| 58 | } |
| 59 | |
| 60 | char *get_refs_directory(void) |
| 61 | { |
| 62 | if (!git_refs_dir) |
| 63 | setup_git_env(); |
| 64 | return git_refs_dir; |
| 65 | } |
| 66 | |
| 67 | char *get_index_file(void) |
| 68 | { |
| 69 | if (!git_index_file) |
| 70 | setup_git_env(); |
| 71 | return git_index_file; |
| 72 | } |
| 73 | |
| 74 | char *get_graft_file(void) |
| 75 | { |
| 76 | if (!git_graft_file) |
| 77 | setup_git_env(); |
| 78 | return git_graft_file; |
| 79 | } |
| 80 | |
| 81 | |