diff --git a/example.in b/example.in new file mode 100644 index 0000000..52bcfbd --- /dev/null +++ b/example.in @@ -0,0 +1,26 @@ +AlmaLinux +Alpine +Apache +Arch +CentOS +Ceph +CPAN +Cygwin +Debian +DebianCD +DebianMultimedia +DebianPorts +DebianSecurity +Eclipse +Fedora +FreeBSD +GentooDistfiles +GentooPortage +GNOME +GNU +Gutenberg +IPFire +KDE +KDEApplicationData +Kernel +OpenBSD diff --git a/main.py b/main.py index 6de60ca..410d631 100644 --- a/main.py +++ b/main.py @@ -6,6 +6,7 @@ This mirror status checker determines whether CSC mirror is up-to-date with upst import time import os +import sys import requests from arch import Arch from ceph import Ceph @@ -106,8 +107,12 @@ if __name__ == "__main__": with open("data.json", "r", encoding = "utf-8") as file: data = json.load(file) + if sys.stdin.isatty(): + distros = data + else: + distros = [distro.rstrip() for distro in sys.stdin.readlines()] current_time = int(time.time()) - for distro in data: + for distro in distros: try: if distro == "CPAN": res_json = requests.get("http://mirrors.cpan.org/cpan-json.txt").json() @@ -134,6 +139,9 @@ if __name__ == "__main__": continue elif distro == "IPFire": checker_result = ipfire_checker() + elif distro not in data: + print(f"Failure: {distro} does not exist") + continue else: checker_result = general_checker(data, distro) if checker_result: