Commit | Line | Data |
---|---|---|
170f576b CM |
1 | """Access to the GIT base directory |
2 | """ | |
3 | ||
4 | __copyright__ = """ | |
5 | Copyright (C) 2006, Catalin Marinas <catalin.marinas@gmail.com> | |
6 | ||
7 | This program is free software; you can redistribute it and/or modify | |
8 | it under the terms of the GNU General Public License version 2 as | |
9 | published by the Free Software Foundation. | |
10 | ||
11 | This program is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU General Public License | |
17 | along with this program; if not, write to the Free Software | |
18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
19 | """ | |
20 | ||
21 | import os | |
22 | ||
170f576b CM |
23 | def __output(cmd): |
24 | f = os.popen(cmd, 'r') | |
25 | string = f.readline().rstrip() | |
26 | if f.close(): | |
c82395b4 | 27 | return '' |
170f576b CM |
28 | return string |
29 | ||
30 | # GIT_DIR value cached | |
31 | __base_dir = None | |
32 | ||
33 | def get(): | |
34 | """Return the .git directory location | |
35 | """ | |
36 | global __base_dir | |
37 | ||
38 | if not __base_dir: | |
39 | if 'GIT_DIR' in os.environ: | |
40 | __base_dir = os.environ['GIT_DIR'] | |
41 | else: | |
c82395b4 | 42 | __base_dir = __output('git-rev-parse --git-dir 2> /dev/null') |
170f576b CM |
43 | |
44 | return __base_dir | |
608961c2 YD |
45 | |
46 | def clear_cache(): | |
47 | """Clear the cached location of .git | |
48 | """ | |
49 | global __base_dir | |
50 | __base_dir = None |