Better method to identify the current user
authorFrederic Massart <fred@moodle.com>
Thu, 6 Dec 2012 08:38:28 +0000 (16:38 +0800)
committerFrederic Massart <fred@moodle.com>
Thu, 6 Dec 2012 08:38:28 +0000 (16:38 +0800)
lib/tools.py
moodle-init.py

index ee0f46f..0eab3c8 100644 (file)
@@ -63,6 +63,21 @@ def chmodRecursive(path, chmod):
             os.chmod(file, chmod)
 
 
+def get_current_user():
+    """Attempt to get the currently logged in user"""
+    username = 'root'
+    import os
+    try:
+        username = os.getlogin()
+    except OSError:
+        import getpass
+        try:
+            username = getpass.getuser()
+        except:
+            pass
+    return username
+
+
 def debug(str):
     print str
     sys.stdout.flush()
index 9097c40..38dd07a 100755 (executable)
@@ -31,7 +31,7 @@ import re
 import pwd
 import subprocess
 
-from lib.tools import debug, question
+from lib.tools import debug, question, get_current_user
 
 
 def resolve_directory(path, user):
@@ -53,7 +53,7 @@ if os.getuid() != 0:
 
 # Check what user we want to initialise for.
 while True:
-    username = question('What user are you initialising MDK for?', os.getlogin())
+    username = question('What user are you initialising MDK for?', get_current_user())
     try:
         user = pwd.getpwnam(username)
         usergroup = grp.getgrnam(username)