print usage on no arguments - graceful handle CTRL+C

This commit is contained in:
Frede Hundewadt 2023-08-24 08:41:56 +02:00
parent 51d5517f6f
commit 9cb68feb9d

24
get-iso
View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# @linux-aarhus - root.nix.dk # @linux-aarhus - root.nix.dk
# License: GNU GPL, version 3 or later; http://www.gnu.org/licenses/gpl.html # License: GNU GPL, version 3 or later; https://www.gnu.org/licenses/gpl.html
import argparse import argparse
import subprocess import subprocess
import sys import sys
@ -14,6 +14,9 @@ from pathlib import Path
DEF_URL = "https://gitlab.manjaro.org/webpage/iso-info/-/raw/master/file-info.json" DEF_URL = "https://gitlab.manjaro.org/webpage/iso-info/-/raw/master/file-info.json"
FOLDER = Path.home() FOLDER = Path.home()
PROG_NAME = os.path.basename(__file__)
PROG_VERSION = "0.1"
GNU_URL = "https://www.gnu.org/licenses/gpl.html"
def download_file(url: str, folder_name: str) -> bool: def download_file(url: str, folder_name: str) -> bool:
@ -85,17 +88,15 @@ def download(url: str) -> bool:
return success return success
if __name__ == '__main__': def main():
prog_name = os.path.basename(__file__)
prog_version = "0.1"
iso_files = init_iso_list(DEF_URL) iso_files = init_iso_list(DEF_URL)
choices = [] choices = []
for c in iso_files: for c in iso_files:
choices.append(c["name"]) choices.append(c["name"])
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
prog=f"{prog_name}", prog=f"{PROG_NAME}",
description="This tool will download a named Manjaro ISO and verify the signature", description="This tool will download a named Manjaro ISO and verify the signature",
epilog=f"{prog_name} version {prog_version} - License GPL v3 or later") epilog=f"{PROG_NAME} v. {PROG_VERSION} - GPL v3 or later <{GNU_URL}>")
parser.add_argument("edition", parser.add_argument("edition",
type=str, type=str,
help="edition e.g. plasma or xfce", help="edition e.g. plasma or xfce",
@ -105,7 +106,8 @@ if __name__ == '__main__':
action="store_true", action="store_true",
help="Download full ISO") help="Download full ISO")
args = parser.parse_args() args = parser.parse_args()
if args.edition is None:
parser.print_usage()
edition = [x for x in iso_files if args.edition == x["name"]] edition = [x for x in iso_files if args.edition == x["name"]]
for x in edition: for x in edition:
if args.full: if args.full:
@ -124,3 +126,11 @@ if __name__ == '__main__':
print("Download ISO failed") print("Download ISO failed")
sys.exit(0) sys.exit(0)
sys.exit(0) sys.exit(0)
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
print("\n" + "Exit: interrupted by the user.")
sys.exit(1)