Skip to content

Commit

Permalink
Fixed 'Inappropriate ioctl for device' problem on posix systems
Browse files Browse the repository at this point in the history
  • Loading branch information
swallat committed Feb 2, 2012
1 parent 6e86f8a commit f362d10
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions git/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@
SlidingWindowMapManager,
SlidingWindowMapBuffer
)

# Import the user database on unix based systems
if os.name == "posix":
import pwd


__all__ = ( "stream_copy", "join_path", "to_native_path_windows", "to_native_path_linux",
Expand Down Expand Up @@ -144,12 +146,17 @@ def __getslice__(self, start, end):

def get_user_id():
""":return: string identifying the currently active system user as name@node
:note: user can be set with the 'USER' environment variable, usually set on windows"""
ukn = 'UNKNOWN'
username = os.environ.get('USER', os.environ.get('USERNAME', ukn))
if username == ukn and hasattr(os, 'getlogin'):
username = os.getlogin()
# END get username from login
:note: user can be set with the 'USER' environment variable, usually set on windows
:note: on unix based systems you can use the password database
to get the login name of the effective process user"""
if os.name == "posix":
username = pwd.getpwuid(os.geteuid()).pw_name
else:
ukn = 'UNKNOWN'
username = os.environ.get('USER', os.environ.get('USERNAME', ukn))
if username == ukn and hasattr(os, 'getlogin'):
username = os.getlogin()
# END get username from login
return "%s@%s" % (username, platform.node())

def is_git_dir(d):
Expand Down

0 comments on commit f362d10

Please sign in to comment.