29 lines
717 B
Python
29 lines
717 B
Python
# adapted from https://github.com/wbond/sublime_package_control/blob/master/Package%20Control.py
|
|
import os.path
|
|
import subprocess
|
|
|
|
|
|
class BinaryNotFoundError(Exception):
|
|
pass
|
|
|
|
|
|
def find_binary(name):
|
|
dirs = ['/usr/local/sbin', '/usr/local/bin', '/usr/sbin', '/usr/bin',
|
|
'/sbin', '/bin']
|
|
for dir in dirs:
|
|
path = os.path.join(dir, name)
|
|
if os.path.exists(path):
|
|
return path
|
|
|
|
raise BinaryNotFoundError('The binary ' + name + ' could not be ' + \
|
|
'located')
|
|
|
|
|
|
def execute(args):
|
|
proc = subprocess.Popen(args, stdin=subprocess.PIPE,
|
|
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
|
|
|
output = proc.stdout.read()
|
|
proc.wait()
|
|
return output
|