]> git.nothing2do.fr Git - get-hack-src.git/commitdiff
Added support for per-tty sessions
authorallfro <ndouba@gmail.com>
Tue, 19 Mar 2013 23:41:14 +0000 (19:41 -0400)
committerallfro <ndouba@gmail.com>
Tue, 19 Mar 2013 23:41:14 +0000 (19:41 -0400)
src/scripts/pysudo

index e19e7c21c399bcb30f74e711085c767bcf900eeb..3954341c2b2e1e6c3f4507d4bcc58a68bcba4b42 100755 (executable)
@@ -2,6 +2,7 @@
 
 import sys
 import subprocess
+import getpass
 
 from canari.utils.fs import fmutex
 from canari.easygui import passwordbox
@@ -11,7 +12,7 @@ __copyright__ = 'Copyright 2012, Canari Project'
 __credits__ = []
 
 __license__ = 'GPL'
-__version__ = '0.4'
+__version__ = '0.5'
 __maintainer__ = 'Nadeem Douba'
 __email__ = 'ndouba@gmail.com'
 __status__ = 'Development'
@@ -30,17 +31,17 @@ def main():
     if not p.returncode:
         exit(0)
 
-    l = fmutex('pysudo.lock')
+    l = fmutex('pysudo.%s.lock' % getpass.getuser())
     for i in range(0, 3):
         password = passwordbox('Please enter your password.', 'sudo', '')
         if password is None:
             exit(1)
-        p = subprocess.Popen(['sudo', '-S', 'true'], stdin=subprocess.PIPE)
+        p = subprocess.Popen(['sudo', '-S', 'true'], stdin=subprocess.PIPE, stderr=subprocess.PIPE)
         p.communicate(input='%s\n' % password)
         if not p.returncode:
             l.unlock()
             p = subprocess.Popen(['sudo', '-S'] + sys.argv[1:])
-            p.communicate()
+            p.communicate(input='%s\n' % password)
             exit(p.returncode)
     exit(2)