Loading classes/elphel-misc-functions.bbclass +19 −2 Original line number Diff line number Diff line Loading @@ -23,12 +23,29 @@ def version_update(path,file,evr): return res def revision_update(path,file): import subprocess import subprocess, os# , pwd for some reasons pwd.getpwall() show some 3-user default, so read and parse etc/passwd pef = None # , preexec_fn=pefuid if (os.getuid() == 0): uname = os.getlogin() with open("/etc/passwd") as f: for line in f: line = line.strip() a = line.split(':') if a[0] == uname: pef = preexec_fn=demote(int(a[3]),int(a[2])); break cmd = "cd "+path+"; git rev-list --count $(git log -1 --pretty=format:\"%H\" "+file+")..HEAD" try: res = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) res = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True, preexec_fn=pef) except subprocess.CalledProcessError as e: res = "error_"+e.returncode res = str(int(res)) res = res.strip(' \t\n\r') return res def demote(user_uid, user_gid): import os def result(): os.setgid(user_gid) os.setuid(user_uid) return result Loading
classes/elphel-misc-functions.bbclass +19 −2 Original line number Diff line number Diff line Loading @@ -23,12 +23,29 @@ def version_update(path,file,evr): return res def revision_update(path,file): import subprocess import subprocess, os# , pwd for some reasons pwd.getpwall() show some 3-user default, so read and parse etc/passwd pef = None # , preexec_fn=pefuid if (os.getuid() == 0): uname = os.getlogin() with open("/etc/passwd") as f: for line in f: line = line.strip() a = line.split(':') if a[0] == uname: pef = preexec_fn=demote(int(a[3]),int(a[2])); break cmd = "cd "+path+"; git rev-list --count $(git log -1 --pretty=format:\"%H\" "+file+")..HEAD" try: res = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) res = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True, preexec_fn=pef) except subprocess.CalledProcessError as e: res = "error_"+e.returncode res = str(int(res)) res = res.strip(' \t\n\r') return res def demote(user_uid, user_gid): import os def result(): os.setgid(user_gid) os.setuid(user_uid) return result