tilde-launcher/tilde

75 lines
1.9 KiB
Plaintext
Raw Normal View History

2018-03-16 19:12:28 +00:00
#!/usr/bin/python2
import argparse,sys,os,subprocess
class TildeContrib(object):
def __init__(self,progdir):
self.progdir=progdir
pass
def __getattr__(self,k):
2018-06-09 00:46:53 +00:00
if k in ("list"):
2018-03-16 19:12:28 +00:00
return object.__getattr__(self,k)
return lambda x: os.system("/tilde/bin/{} {}".format(k," ".join(x)))
def list(self, x, inc=True):
cs = filter(None,subprocess.check_output(['/tilde/special/list']).split("\n"))
f = " ".join(x) if len(x)>0 else ""
ret = []
for c in cs:
if f in c:
ret.append(c)
if inc:
2018-06-09 00:46:53 +00:00
ret.extend(["list"])
2018-03-16 19:12:28 +00:00
return ret
class TildeLauncher:
2018-06-08 21:40:10 +00:00
COMMANDS = ["help","contrib"]
2018-03-16 19:12:28 +00:00
2018-06-08 21:38:32 +00:00
USAGE = dict(help="\n Displays this menu",contrib=" <program>\n Your gateway to programs made by teammates,\n for teammates!")
2018-03-16 19:12:28 +00:00
def __init__(self,prog_dir):
self.progdir = prog_dir
self.tc = TildeContrib(prog_dir)
def base(self):
2018-06-08 21:14:56 +00:00
print """ Welcome to tilde.team :) this program is your gateway to team-specific
2018-03-16 19:12:28 +00:00
commands and features. Run tilde help to see the sort of things you can do."""
def help(self,argv):
commands_to_display = []
if len(argv)==0:
commands_to_display = self.COMMANDS
else:
commands_to_display = [i for i in argv if i in self.COMMANDS]
for cmd in commands_to_display:
print "tilde {}{}".format(cmd,self.USAGE[cmd])
def contrib(self,argv):
if not argv:
argv = ["list"] # default to listing
if argv[0]=="list":
print "Commands:"
for c in self.tc.list(argv[1:]):
print " tilde contrib "+c
2018-06-09 00:46:53 +00:00
# elif argv[0]=="bootstrap":
# for c in self.tc.list([],False):
# print("alias {0}=\"tilde contrib {0}\"".format(c))
2018-03-16 19:12:28 +00:00
else:
getattr(self.tc,argv[0])(argv[1:])
2018-06-08 21:37:18 +00:00
# def chat(self,argv):
# os.system("/tilde/special/chat")
2018-03-16 19:12:28 +00:00
if __name__=="__main__":
tl = TildeLauncher("/tilde/bin")
argv = sys.argv[1:]
if len(argv)==0:
tl.base()
else:
if not hasattr(tl,argv[0]):
print " Unknown command %s!"
tl.help([])
getattr(tl,argv[0])(argv[1:])