Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/, roverlay/util/
Date: Sat, 22 Feb 2014 14:56:03
Message-Id: 1393007355.b2d8535a2b905519d2b7d75c495135c7943edc99.dywi@gentoo
1 commit: b2d8535a2b905519d2b7d75c495135c7943edc99
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Fri Feb 21 18:28:08 2014 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Fri Feb 21 18:29:15 2014 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=b2d8535a
7
8 roverlay/util/common: get_home_dir()
9
10 ---
11 roverlay/core.py | 3 ++-
12 roverlay/util/common.py | 31 ++++++++++++++++++++++++++++++-
13 2 files changed, 32 insertions(+), 2 deletions(-)
14
15 diff --git a/roverlay/core.py b/roverlay/core.py
16 index b8fe6a5..d462f0f 100644
17 --- a/roverlay/core.py
18 +++ b/roverlay/core.py
19 @@ -22,6 +22,7 @@ import logging
20 import roverlay.config
21 import roverlay.recipe.easylogger
22 import roverlay.tools.shenv
23 +import roverlay.util.common
24
25
26 name = "R_overlay"
27 @@ -45,7 +46,7 @@ DEFAULT_CONFIG_FILE_NAME = "R-overlay.conf"
28 #
29 CONFIG_DIRS = tuple ((
30 (
31 - ( os.getenv ( 'HOME' ) or os.path.expanduser ( '~' ) )
32 + ( os.getenv ( 'HOME' ) or roverlay.util.common.get_home_dir ( None ) )
33 + os.sep + 'roverlay'
34 ),
35 # os.sep is '/' if /etc exists, so don't care about that
36
37 diff --git a/roverlay/util/common.py b/roverlay/util/common.py
38 index 30dd310..92c0183 100644
39 --- a/roverlay/util/common.py
40 +++ b/roverlay/util/common.py
41 @@ -11,7 +11,7 @@ __all__= [
42 'for_all_files_decorator', 'for_all_files',
43 'get_dict_hash', 'keepenv', 'keepenv_v',
44 'priosort', 'sysnop', 'getsize', 'is_vcs_dir', 'is_not_vcs_dir',
45 - 'headtail', 'try_unlink',
46 + 'headtail', 'try_unlink', 'get_pwd_info', 'get_home_dir',
47 ]
48
49
50 @@ -19,6 +19,7 @@ import errno
51 import os
52 import sys
53 import logging
54 +import pwd
55
56 LOGGER = logging.getLogger ( 'util' )
57
58 @@ -322,3 +323,31 @@ def is_vcs_dir ( dirpath ):
59 def is_not_vcs_dir ( dirpath ):
60 return not is_vcs_dir ( dirpath )
61 # --- end of is_not_vcs_dir (...) ---
62 +
63 +def get_pwd_info ( user=None ):
64 + """Returns the passwd entry of the given user.
65 +
66 + arguments:
67 + * user -- name, uid or None (os.getuid()). Defaults to None.
68 + """
69 + if user is None:
70 + return pwd.getpwuid ( os.getuid() )
71 + elif isinstance ( user, int ):
72 + return pwd.getpwuid ( user )
73 + else:
74 + try:
75 + uid = int ( user, 10 )
76 + except ValueError:
77 + return pwd.getpwnam ( user )
78 + else:
79 + return pwd.getpwuid ( uid )
80 +# --- end of get_pwd_info (...) ---
81 +
82 +def get_home_dir ( user=None ):
83 + """Returns a user's home directory.
84 +
85 + arguments:
86 + * user -- name, uid or None (os.getuid()). Defaults to None.
87 + """
88 + return get_pwd_info ( user ).pw_dir
89 +# --- end of get_home_dir (...) ---