@@ -22,11 +22,11 @@ def scp_file(src, dest, **kwargs): _ssh_pass('scp', [scp_path(src), scp_path(des
22
22
def exec_ssh (cmd , env = None , ** kwargs ): return _ssh_pass ('ssh' , [f'root@{ mister_ip ()} ' , f'{ exports (env )} { cmd } ' ], ** kwargs )
23
23
def run_build (** kwargs ): send_build (env = {"SKIP_REMOVALS" : "true" }), exec_ssh (f'/media/fat/downloader.sh' , ** kwargs )
24
24
def 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 )
25
26
def store_push (** kwargs ): scp_file ('downloader.json' , '/media/fat/Scripts/.config/downloader/downloader.json' , ** kwargs )
26
27
def store_pull (** kwargs ): scp_file ('/media/fat/Scripts/.config/downloader/downloader.json' , 'downloader.json' , ** kwargs )
27
28
def log_pull (** kwargs ): scp_file ('/media/fat/Scripts/.config/downloader/downloader.log' , 'downloader.log' , ** kwargs )
28
29
29
-
30
30
def send_build (env = None , ** kwargs ):
31
31
env = {'DEBUG' : 'true' , ** os .environ .copy (), ** (env or {}), 'MISTER' : 'true' }
32
32
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):
39
39
40
40
os .remove (tmp .name )
41
41
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 )
42
47
43
- def run_operation ( op , env = None , retries = False ):
44
- {
48
+ def operations_dict ( env = None , retries = False ):
49
+ return {
45
50
'store_push' : lambda : store_push (retries = retries ),
46
51
'store_pull' : lambda : store_pull (retries = retries ),
47
52
'log_pull' : lambda : log_pull (retries = retries ),
53
+ 'build' : lambda : [send_build (env = env , retries = retries ), print ('OK' )],
48
54
'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 ),
49
57
'launcher' : lambda : run_launcher (env = env , retries = retries ),
50
58
'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
+ }
53
60
54
61
def _ssh_pass (cmd , args , out = None , retries = True ):
55
62
for i in range (4 ):
@@ -59,13 +66,13 @@ def _ssh_pass(cmd, args, out=None, retries=True):
59
66
traceback .print_exc ()
60
67
time .sleep (30 * (i + 1 ))
61
68
62
-
63
69
def _main ():
70
+ operations = operations_dict ()
64
71
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 )
66
73
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 ()
69
76
70
77
if __name__ == '__main__' :
71
78
_main ()
0 commit comments