| Linus Torvalds | e1b1039 | 2005-10-12 01:47:34 | [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-09 05:15:24 | [diff] [blame] | 15 | int assume_unchanged = 0; |
| Junio C Hamano | e388c73 | 2006-05-02 07:40:24 | [diff] [blame] | 16 | int prefer_symlink_refs = 0; |
| Junio C Hamano | 1b371f5 | 2006-03-24 07:42:40 | [diff] [blame] | 17 | int warn_ambiguous_refs = 1; |
| Junio C Hamano | ab9cb76 | 2005-11-25 23:59:09 | [diff] [blame] | 18 | int repository_format_version = 0; |
| Junio C Hamano | 4e72dce | 2005-11-28 00:09:40 | [diff] [blame] | 19 | char git_commit_encoding[MAX_ENCODING_LENGTH] = "utf-8"; |
| Johannes Schindelin | 457f06d | 2005-12-22 22:13:56 | [diff] [blame] | 20 | int shared_repository = 0; |
| Junio C Hamano | 2ae1c53 | 2006-02-27 22:47:45 | [diff] [blame] | 21 | const char *apply_default_whitespace = NULL; |
| Linus Torvalds | e1b1039 | 2005-10-12 01:47:34 | [diff] [blame] | 22 | |
| 23 | static char *git_dir, *git_object_dir, *git_index_file, *git_refs_dir, |
| 24 | *git_graft_file; |
| 25 | static void setup_git_env(void) |
| 26 | { |
| 27 | git_dir = getenv(GIT_DIR_ENVIRONMENT); |
| 28 | if (!git_dir) |
| 29 | git_dir = DEFAULT_GIT_DIR_ENVIRONMENT; |
| 30 | git_object_dir = getenv(DB_ENVIRONMENT); |
| 31 | if (!git_object_dir) { |
| 32 | git_object_dir = xmalloc(strlen(git_dir) + 9); |
| 33 | sprintf(git_object_dir, "%s/objects", git_dir); |
| 34 | } |
| 35 | git_refs_dir = xmalloc(strlen(git_dir) + 6); |
| 36 | sprintf(git_refs_dir, "%s/refs", git_dir); |
| 37 | git_index_file = getenv(INDEX_ENVIRONMENT); |
| 38 | if (!git_index_file) { |
| 39 | git_index_file = xmalloc(strlen(git_dir) + 7); |
| 40 | sprintf(git_index_file, "%s/index", git_dir); |
| 41 | } |
| 42 | git_graft_file = getenv(GRAFT_ENVIRONMENT); |
| 43 | if (!git_graft_file) |
| 44 | git_graft_file = strdup(git_path("info/grafts")); |
| 45 | } |
| 46 | |
| 47 | char *get_git_dir(void) |
| 48 | { |
| 49 | if (!git_dir) |
| 50 | setup_git_env(); |
| 51 | return git_dir; |
| 52 | } |
| 53 | |
| 54 | char *get_object_directory(void) |
| 55 | { |
| 56 | if (!git_object_dir) |
| 57 | setup_git_env(); |
| 58 | return git_object_dir; |
| 59 | } |
| 60 | |
| 61 | char *get_refs_directory(void) |
| 62 | { |
| 63 | if (!git_refs_dir) |
| 64 | setup_git_env(); |
| 65 | return git_refs_dir; |
| 66 | } |
| 67 | |
| 68 | char *get_index_file(void) |
| 69 | { |
| 70 | if (!git_index_file) |
| 71 | setup_git_env(); |
| 72 | return git_index_file; |
| 73 | } |
| 74 | |
| 75 | char *get_graft_file(void) |
| 76 | { |
| 77 | if (!git_graft_file) |
| 78 | setup_git_env(); |
| 79 | return git_graft_file; |
| 80 | } |
| 81 | |
| 82 | |