@@ -22,11 +22,11 @@ def scp_file(src, dest, **kwargs): _ssh_pass('scp', [scp_path(src), scp_path(des
2222def exec_ssh (cmd , env = None , ** kwargs ): return _ssh_pass ('ssh' , [f'root@{ mister_ip ()} ' , f'{ exports (env )} { cmd } ' ], ** kwargs )
2323def run_build (** kwargs ): send_build (env = {"SKIP_REMOVALS" : "true" }), exec_ssh (f'/media/fat/downloader.sh' , ** kwargs )
2424def run_launcher (** kwargs ): send_build (** kwargs ), exec_ssh (f'/media/fat/Scripts/downloader.sh' , ** kwargs )
25+ def run_compile (** kwargs ): send_compile (** kwargs ), exec_ssh (f'/media/fat/downloader_bin' , ** kwargs )
2526def store_push (** kwargs ): scp_file ('downloader.json' , '/media/fat/Scripts/.config/downloader/downloader.json' , ** kwargs )
2627def store_pull (** kwargs ): scp_file ('/media/fat/Scripts/.config/downloader/downloader.json' , 'downloader.json' , ** kwargs )
2728def log_pull (** kwargs ): scp_file ('/media/fat/Scripts/.config/downloader/downloader.log' , 'downloader.log' , ** kwargs )
2829
29-
3030def send_build (env = None , ** kwargs ):
3131 env = {'DEBUG' : 'true' , ** os .environ .copy (), ** (env or {}), 'MISTER' : 'true' }
3232 with tempfile .NamedTemporaryFile (delete = False ) as tmp : subprocess .run (['./src/build.sh' ], stdout = tmp , env = env , check = True )
@@ -39,17 +39,24 @@ def send_build(env=None, **kwargs):
3939
4040 os .remove (tmp .name )
4141
42+ def send_compile (env = None , ** kwargs ):
43+ with tempfile .NamedTemporaryFile (delete = False ) as tmp : subprocess .run (['./src/compile.sh' ], stdout = tmp , env = env , check = True )
44+ os .chmod (tmp .name , 0o755 )
45+ scp_file (tmp .name , '/media/fat/downloader_bin' , ** kwargs )
46+ os .remove (tmp .name )
4247
43- def run_operation ( op , env = None , retries = False ):
44- {
48+ def operations_dict ( env = None , retries = False ):
49+ return {
4550 'store_push' : lambda : store_push (retries = retries ),
4651 'store_pull' : lambda : store_pull (retries = retries ),
4752 'log_pull' : lambda : log_pull (retries = retries ),
53+ 'build' : lambda : [send_build (env = env , retries = retries ), print ('OK' )],
4854 'run' : lambda : run_build (env = env , retries = retries ),
55+ 'compile' : lambda : send_compile (env = env , retries = retries ),
56+ 'run_compile' : lambda : run_compile (env = env , retries = retries ),
4957 'launcher' : lambda : run_launcher (env = env , retries = retries ),
5058 'copy' : lambda : scp_file (sys .argv [2 ], f'/media/fat/{ sys .argv [2 ]} ' ),
51- }.get (op , lambda : [send_build (env = env , retries = retries ), print ('OK' )])()
52-
59+ }
5360
5461def _ssh_pass (cmd , args , out = None , retries = True ):
5562 for i in range (4 ):
@@ -59,13 +66,13 @@ def _ssh_pass(cmd, args, out=None, retries=True):
5966 traceback .print_exc ()
6067 time .sleep (30 * (i + 1 ))
6168
62-
6369def _main ():
70+ operations = operations_dict ()
6471 parser = argparse .ArgumentParser ()
65- parser .add_argument ('command' , choices = [ 'store_push' , 'store_pull' , 'log_pull' , 'run' , 'launcher' , 'copy' ] , nargs = '?' , default = None )
72+ parser .add_argument ('command' , choices = list ( operations ) , nargs = '?' , default = None )
6673 parser .add_argument ('parameter' , nargs = '?' , default = '' )
67- run_operation (parser .parse_args ().command )
68-
74+ op = operations . get (parser .parse_args ().command , operations [ 'build' ] )
75+ op ()
6976
7077if __name__ == '__main__' :
7178 _main ()
0 commit comments