| | |
| | | import sys, getopt |
| | | import tabulate |
| | | import subprocess,re |
| | | import psutil |
| | | |
| | | def printHelp(): |
| | | print('Python module tsmgr accept following switches:\n') |
| | | print('tsmgr [-n process number] [-R] [-h] [-r] [-s] [-c comment text] [-a comment text]\n') |
| | | print('[-n process number]: number of process for which -s -r -c or -a switch apply. Should be placed before any other switch'); |
| | | print('[-R] : raw output for -s switch'); |
| | | print('[-r] : run process'); |
| | | print('[-s] : process status'); |
| | | print('[-k] : kill process'); |
| | | print('[-c comment text] : write new comment for process'); |
| | | print('[-a comment text] : append additional comment for process'); |
| | | print('[-h] : print help'); |
| | | |
| | | |
| | | def getTrisurfVersion(): |
| | | p = subprocess.Popen('trisurf --version', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) |
| | | lines=p.stdout.readlines() |
| | | version=re.findall(r'[0-9a-f]{7}(?:-dirty)?', lines[0].decode('ascii')) |
| | | p.wait() |
| | | if(len(version)): |
| | | return version[0] |
| | | else: |
| | | return "unknown version" |
| | | |
| | | def start(Runs): |
| | | argv=sys.argv[1:] |
| | | processno=0 |
| | | raw=False |
| | | try: |
| | | opts, args = getopt.getopt(argv,"a:n:hrsc:") |
| | | opts, args = getopt.getopt(argv,"Ra:n:hrskc:") |
| | | except getopt.GetoptError: |
| | | print('tsmgr [-n process number] [-h] [-r] [-s] [-c comment text] [-a comment text]') |
| | | printHelp() |
| | | sys.exit(2) |
| | | for opt, arg in opts: |
| | | if opt == '-h': |
| | | print ('tsmgr [-n process number] [-h] [-r] [-s] [-c comment text] [-a comment text]') |
| | | if opt == '-R': |
| | | raw=True |
| | | elif opt == '-h': |
| | | printHelp() |
| | | sys.exit() |
| | | elif opt == '-r': |
| | | if processno: |
| | |
| | | line.insert(0,i) |
| | | report.append(line) |
| | | i=i+1 |
| | | #print(reportstr) |
| | | print ("\n\nTrisurf running processes report\n") |
| | | print (tabulate.tabulate(report,headers=["Run no.", "Run start time", "ETA", "Status", "PID", "Path", "Comment"], tablefmt='fancy_grid')) |
| | | if(raw): |
| | | print(report) |
| | | else: |
| | | print ("\n\nTrisurf running processes report\n") |
| | | print (tabulate.tabulate(report,headers=["Run no.", "Run start time", "ETA", "Status", "PID", "Path", "Comment"], tablefmt='fancy_grid')) |
| | | elif opt == '-n': |
| | | processno=int(arg) |
| | | if processno<1 or processno>len(Runs) : |
| | |
| | | if processno: |
| | | Runs[processno-1].writeComment("\n"+arg, 'a') |
| | | |
| | | |
| | | elif opt == '-k': |
| | | if processno: |
| | | Runs[processno-1].stop() |
| | | else: |
| | | print('tsmgr [-n process number] [-h] [-r] [-s] [-c comment text] [-a comment text]') |
| | | printHelp() |
| | | sys.exit(2) |
| | | |
| | | |