| 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]; |
| Linus Torvalds | 93821bd | 2006-07-11 19:48:08 | [diff] [blame] | 14 | int use_legacy_headers = 1; |
| Linus Torvalds | e1b1039 | 2005-10-12 01:47:34 | [diff] [blame] | 15 | int trust_executable_bit = 1; |
| David Rientjes | 96f1e58 | 2006-08-15 17:23:48 | [diff] [blame] | 16 | int assume_unchanged; |
| 17 | int prefer_symlink_refs; |
| 18 | int log_all_ref_updates; |
| Junio C Hamano | 1b371f5 | 2006-03-24 07:42:40 | [diff] [blame] | 19 | int warn_ambiguous_refs = 1; |
| David Rientjes | 96f1e58 | 2006-08-15 17:23:48 | [diff] [blame] | 20 | int repository_format_version; |
| Junio C Hamano | 4e72dce | 2005-11-28 00:09:40 | [diff] [blame] | 21 | char git_commit_encoding[MAX_ENCODING_LENGTH] = "utf-8"; |
| Junio C Hamano | 94df250 | 2006-06-10 06:09:49 | [diff] [blame] | 22 | int shared_repository = PERM_UMASK; |
| David Rientjes | 96f1e58 | 2006-08-15 17:23:48 | [diff] [blame] | 23 | const char *apply_default_whitespace; |
| Joachim B Haga | 12f6c30 | 2006-07-03 20:11:47 | [diff] [blame] | 24 | int zlib_compression_level = Z_DEFAULT_COMPRESSION; |
| Johannes Schindelin | b75a82b | 2006-07-10 11:40:44 | [diff] [blame] | 25 | int pager_in_use; |
| Matthias Lederhofer | aa086eb | 2006-07-29 22:27:43 | [diff] [blame] | 26 | int pager_use_color = 1; |
| Linus Torvalds | e1b1039 | 2005-10-12 01:47:34 | [diff] [blame] | 27 | |
| Pierre Habouzit | c5fba16 | 2006-08-23 10:39:11 | [diff] [blame] | 28 | static const char *git_dir; |
| 29 | static char *git_object_dir, *git_index_file, *git_refs_dir, *git_graft_file; |
| 30 | |
| Linus Torvalds | e1b1039 | 2005-10-12 01:47:34 | [diff] [blame] | 31 | static void setup_git_env(void) |
| 32 | { |
| 33 | git_dir = getenv(GIT_DIR_ENVIRONMENT); |
| 34 | if (!git_dir) |
| 35 | git_dir = DEFAULT_GIT_DIR_ENVIRONMENT; |
| 36 | git_object_dir = getenv(DB_ENVIRONMENT); |
| 37 | if (!git_object_dir) { |
| 38 | git_object_dir = xmalloc(strlen(git_dir) + 9); |
| 39 | sprintf(git_object_dir, "%s/objects", git_dir); |
| 40 | } |
| 41 | git_refs_dir = xmalloc(strlen(git_dir) + 6); |
| 42 | sprintf(git_refs_dir, "%s/refs", git_dir); |
| 43 | git_index_file = getenv(INDEX_ENVIRONMENT); |
| 44 | if (!git_index_file) { |
| 45 | git_index_file = xmalloc(strlen(git_dir) + 7); |
| 46 | sprintf(git_index_file, "%s/index", git_dir); |
| 47 | } |
| 48 | git_graft_file = getenv(GRAFT_ENVIRONMENT); |
| 49 | if (!git_graft_file) |
| Shawn Pearce | 9befac4 | 2006-09-02 04:16:31 | [diff] [blame] | 50 | git_graft_file = xstrdup(git_path("info/grafts")); |
| Linus Torvalds | e1b1039 | 2005-10-12 01:47:34 | [diff] [blame] | 51 | } |
| 52 | |
| Pierre Habouzit | c5fba16 | 2006-08-23 10:39:11 | [diff] [blame] | 53 | const char *get_git_dir(void) |
| Linus Torvalds | e1b1039 | 2005-10-12 01:47:34 | [diff] [blame] | 54 | { |
| 55 | if (!git_dir) |
| 56 | setup_git_env(); |
| 57 | return git_dir; |
| 58 | } |
| 59 | |
| 60 | char *get_object_directory(void) |
| 61 | { |
| 62 | if (!git_object_dir) |
| 63 | setup_git_env(); |
| 64 | return git_object_dir; |
| 65 | } |
| 66 | |
| 67 | char *get_refs_directory(void) |
| 68 | { |
| 69 | if (!git_refs_dir) |
| 70 | setup_git_env(); |
| 71 | return git_refs_dir; |
| 72 | } |
| 73 | |
| 74 | char *get_index_file(void) |
| 75 | { |
| 76 | if (!git_index_file) |
| 77 | setup_git_env(); |
| 78 | return git_index_file; |
| 79 | } |
| 80 | |
| 81 | char *get_graft_file(void) |
| 82 | { |
| 83 | if (!git_graft_file) |
| 84 | setup_git_env(); |
| 85 | return git_graft_file; |
| 86 | } |
| 87 | |
| 88 | |