batman: ensure /usr/sbin and /usr/local/sbin are in PATH
This commit is contained in:
parent
1ee17c0440
commit
dfcb9a3940
|
@ -13,6 +13,14 @@ class Batman(object):
|
||||||
self.mesh_interface = mesh_interface
|
self.mesh_interface = mesh_interface
|
||||||
self.alfred_sock = alfred_sockpath
|
self.alfred_sock = alfred_sockpath
|
||||||
|
|
||||||
|
# ensure /usr/sbin and /usr/local/sbin are in PATH
|
||||||
|
env = os.environ
|
||||||
|
path = set(env['PATH'].split(':'))
|
||||||
|
path.add('/usr/sbin/')
|
||||||
|
path.add('/usr/local/sbin')
|
||||||
|
env['PATH'] = ':'.join(path)
|
||||||
|
self.environ = env
|
||||||
|
|
||||||
# compile regular expressions only once on startup
|
# compile regular expressions only once on startup
|
||||||
self.mac_addr_pattern = re.compile(r'(([a-z0-9]{2}:){5}[a-z0-9]{2})')
|
self.mac_addr_pattern = re.compile(r'(([a-z0-9]{2}:){5}[a-z0-9]{2})')
|
||||||
|
|
||||||
|
@ -38,7 +46,7 @@ class Batman(object):
|
||||||
cmd = ['batadv-vis', '-i', self.mesh_interface, '-f', 'json']
|
cmd = ['batadv-vis', '-i', self.mesh_interface, '-f', 'json']
|
||||||
if self.alfred_sock:
|
if self.alfred_sock:
|
||||||
cmd.extend(['-u', self.alfred_sock])
|
cmd.extend(['-u', self.alfred_sock])
|
||||||
output = subprocess.check_output(cmd)
|
output = subprocess.check_output(cmd, env=self.environ)
|
||||||
lines = output.splitlines()
|
lines = output.splitlines()
|
||||||
return self.vis_data_helper(lines)
|
return self.vis_data_helper(lines)
|
||||||
|
|
||||||
|
@ -50,7 +58,7 @@ class Batman(object):
|
||||||
cmd = ['batctl', '-m', self.mesh_interface, 'gwl', '-n']
|
cmd = ['batctl', '-m', self.mesh_interface, 'gwl', '-n']
|
||||||
if os.geteuid() > 0:
|
if os.geteuid() > 0:
|
||||||
cmd.insert(0, 'sudo')
|
cmd.insert(0, 'sudo')
|
||||||
output = subprocess.check_output(cmd)
|
output = subprocess.check_output(cmd, env=self.environ)
|
||||||
output_utf8 = output.decode('utf-8')
|
output_utf8 = output.decode('utf-8')
|
||||||
rows = output_utf8.splitlines()
|
rows = output_utf8.splitlines()
|
||||||
|
|
||||||
|
@ -79,7 +87,7 @@ class Batman(object):
|
||||||
cmd = ['batctl', '-m', self.mesh_interface, 'gw']
|
cmd = ['batctl', '-m', self.mesh_interface, 'gw']
|
||||||
if os.geteuid() > 0:
|
if os.geteuid() > 0:
|
||||||
cmd.insert(0, 'sudo')
|
cmd.insert(0, 'sudo')
|
||||||
output = subprocess.check_output(cmd)
|
output = subprocess.check_output(cmd, env=self.environ)
|
||||||
chunks = output.decode("utf-8").split()
|
chunks = output.decode("utf-8").split()
|
||||||
|
|
||||||
return chunks[0], chunks[3] if 3 in chunks else None
|
return chunks[0], chunks[3] if 3 in chunks else None
|
||||||
|
|
Loading…
Reference in a new issue