|
@@ -0,0 +1,31 @@
|
|
|
+import os
|
|
|
+import sys
|
|
|
+import json
|
|
|
+import base64
|
|
|
+import subprocess
|
|
|
+
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ p = sys.argv.index('--')
|
|
|
+ ctx = base64.b64decode(sys.argv[p + 1].encode()).decode()
|
|
|
+ kv = {}
|
|
|
+
|
|
|
+ for x in sys.argv[1:p]:
|
|
|
+ k, v = x.split('=')
|
|
|
+ ctx = ctx.replace(f'$({k})', v)
|
|
|
+ kv[k] = v
|
|
|
+
|
|
|
+ cmd = json.loads(ctx)
|
|
|
+
|
|
|
+ args = cmd['cmd_args']
|
|
|
+ cwd = cmd.get('cwd', kv['B'])
|
|
|
+
|
|
|
+ env = dict(**os.environ)
|
|
|
+ env['ARCADIA_ROOT_DISTBUILD'] = kv['S']
|
|
|
+ env.update(cmd['env'])
|
|
|
+
|
|
|
+ out = subprocess.check_output(args, env=env, cwd=cwd)
|
|
|
+
|
|
|
+ if stdout := cmd.get('stdout'):
|
|
|
+ with open(stdout, 'wb') as f:
|
|
|
+ f.write(out)
|