From 8d70336129d27abab2f001768b87bffcb8558345 Mon Sep 17 00:00:00 2001 From: Captain Beyond Date: Sat, 16 Nov 2024 04:37:33 -0600 Subject: [PATCH] close deploy key before we pass it into scp, windows won't let us open the file while its already opened since delete_on_close was introduced in Python 3.12 we have to implement manually :( --- run | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/run b/run index 6cfb897..51ae074 100755 --- a/run +++ b/run @@ -10,12 +10,19 @@ TARGET = os.environ['PLUGIN_TARGET'] def deploy(source, target, keyfile): for source_file in glob.glob(source): - run(["scp", "-v", "-i", keyfile, "-o", "StrictHostKeyChecking=no", "-r", source_file, target]) + print(f">> {source_file} -> {target}") + run(["scp", "-i", keyfile, "-o", "StrictHostKeyChecking=no", "-r", source_file, target]) -with tempfile.NamedTemporaryFile() as deploy_key: - deploy_key.write(os.environ['PLUGIN_KEY'].encode()) - deploy_key.write(b"\n") - deploy_key.flush() +temp_file_name = None +try: + with tempfile.NamedTemporaryFile(delete=False) as deploy_key: + temp_file_name = deploy_key.name + deploy_key.write(os.environ['PLUGIN_KEY'].encode()) + deploy_key.write(b"\n") + deploy_key.close() - os.chmod(deploy_key.name, 0o600) - deploy(SOURCE, TARGET, deploy_key.name) + os.chmod(deploy_key.name, 0o600) + deploy(SOURCE, TARGET, deploy_key.name) +finally: + if temp_file_name is not None: + os.remove(temp_file_name)