This repository has been archived on 2020-05-11. You can view files and clone it, but cannot push or open issues or pull requests.
minerbot2-older/cli.py

41 lines
1.1 KiB
Python

import shlex, subprocess
def createShellArgs(*args,**kwargs):
rargs = []
for k in kwargs:
if len(k)==1:
rargs.append("-{!s} {!r}".format(k,kwargs[k]))
else:
rargs.append("--{!s} {!r}".format(k.strip("_").replace("_","-"),kwargs[k]))
rargs.extend(map(str,args))
return " ".join(rargs)
class Program:
def __init__(self,binary):
self.binary = binary
self.default_method = "run"
def __use_method(self,f,*args,**kwargs):
cli = self.binary+" "+createShellArgs(*args,**kwargs)
print(cli)
return f(shlex.split(cli))
def __call__(self,*args,**kwargs):
return getattr(self,self.default_method,self.run)(*args,**kwargs)
def run(self,*args,**kwargs):
return self.__use_method(subprocess.run,*args,**kwargs)
def check_output(self,*args,**kwargs):
return self.__use_method(subprocess.check_output,*args,**kwargs)
def call(self,*args,**kwargs):
return self.__use_method(subprocess.call,*args,**kwargs)
def getoutput(self,*args,**kwargs):
return self.__use_method(subprocess.getoutput,*args,**kwargs)
def check_call(self,*args,**kwargs):
return self.__use_method(subprocess.check_call,*args,**kwargs)