diff --git a/src/publish.py b/src/publish.py index b5a9d53..eaa25b8 100644 --- a/src/publish.py +++ b/src/publish.py @@ -41,32 +41,33 @@ def publish(args): with console.status("Compressing...", spinner="bouncingBall", spinner_style="blue") as status: # compress to a tar file - with tempfile.TemporaryFile(mode="wb+") as f: - tar_file = tarfile.open(fileobj=f, mode="w:gz") + f = tempfile.TemporaryFile(mode="wb+") + with tarfile.open(fileobj=f, mode="w:gz") as tar_file: tar_file.add(args.folder_path, arcname=os.path.basename(args.folder_path)) + f.flush() + f.seek(0) - console.print("[d][:white_check_mark:] Compressed![/]") - - # send the request - status.update("Uploading...") - response = requests.put( - url=f"https://chookspace.com/api/packages/{username}/generic/{mineral_name}/{version}/mineral.tar", - data=f, - auth=HTTPBasicAuth(username, password) - ) - - tar_file.close() - - if response.status_code == 401: - console.print("[b red]digpkg: failed to publish mineral: authentication failed[/]") - sys.exit(1) - elif response.status_code == 400: - console.print("[b red]digpkg: failed to publish mineral: the package name or version number are invalid[/]") - sys.exit(1) - elif response.status_code == 409: - console.print("[b red]digpkg: failed to publish mineral: that version number is already in use[/]") - sys.exit(1) - - response.raise_for_status() - console.print("[d][:white_check_mark:] Uploaded![/]") - \ No newline at end of file + console.print("[d][:white_check_mark:] Compressed![/]") + + # send the request + status.update("Uploading...") + response = requests.put( + url=f"https://chookspace.com/api/packages/{username}/generic/{mineral_name}/{version}/mineral.tar", + data=f, + auth=HTTPBasicAuth(username, password) + ) + + f.close() + + if response.status_code == 401: + console.print("[b red]digpkg: failed to publish mineral: authentication failed[/]") + sys.exit(1) + elif response.status_code == 400: + console.print("[b red]digpkg: failed to publish mineral: the package name or version number are invalid[/]") + sys.exit(1) + elif response.status_code == 409: + console.print("[b red]digpkg: failed to publish mineral: that version number is already in use[/]") + sys.exit(1) + + response.raise_for_status() + console.print("[d][:white_check_mark:] Uploaded![/]") \ No newline at end of file