xxh/xxh_xxh/shell.py
2020-03-27 20:33:27 +03:00

47 lines
1.1 KiB
Python

import os, sys
from pathlib import Path
import subprocess
def S(cmd, trace=False):
if type(cmd) == list:
cmd = ' '.join(cmd)
if trace:
print(cmd)
return os.system(cmd)
def SC(cmd):
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
[out, err] = proc.communicate()
return (out, err, proc)
def A(args, q=0):
if type(args) == list:
args = ' '.join([str(a) for a in args])
if q == 1:
return f"'{args}'"
elif q == 2:
return f'"{args}"'
return str(args)
def p(path_str):
return Path(path_str).expanduser()
def eprint(*args, **kwargs):
print(*args, file=sys.stderr, **kwargs)
def eeprint(*args, **kwargs):
return_code=1
if 'return_code' in kwargs:
return_code = kwargs['return_code']
del kwargs['return_code']
print(*args, file=sys.stderr, **kwargs)
sys.exit(return_code)
if __name__ == '__main__':
print('Example')
[o, e, p] = SC('ls')
if p.returncode == 0:
print(f'OUTPUT: {o}')
else:
print(f'ERROR: {e}')