diff --git a/upload-pkg.py b/upload-pkg.py index f718c80..f65c2cf 100644 --- a/upload-pkg.py +++ b/upload-pkg.py @@ -1,6 +1,9 @@ +#!/usr/bin/python3 +# -*- coding=utf-8 from pyalpm import Handle from sys import argv, exit, stdout -from os.path import exists, basename +from os import listdir +from os.path import exists, basename, join from logging import warning, info, basicConfig, INFO from requests import get, post, put, delete, RequestException, Response from argparse import ArgumentParser @@ -110,12 +113,25 @@ def UploadPackage( def main(args: list) -> int: prs = ArgumentParser("Renegade Project Arch Linux Repo Uploader") prs.add_argument("-a", "--arch", help="Target repo architecture", required=False) - prs.add_argument("-p", "--pkg", help="Package tarball file", required=True) + prs.add_argument("-d", "--dir", help="Package folder", required=False) + prs.add_argument("-p", "--pkg", help="Package tarball file", required=False) prs.add_argument("-s", "--sign", help="Package signature file", required=False) prs.add_argument("-u", "--url", help="Updater Server URL", required=False, default=default_server) ps = prs.parse_args(args[1:]) basicConfig(level=INFO, stream=stdout) - UploadPackage(ps.pkg, ps.sign, ps.arch, ps.url) + cnt = 0 + if ps.pkg: + UploadPackage(ps.pkg, ps.sign, ps.arch, ps.url) + cnt += 1 + elif ps.dir: + exts = [".pkg.tar.gz", ".pkg.tar.xz", ".pkg.tar.zst"] + for f in listdir(ps.dir): + full = join(ps.dir, f) + if any(f.endswith(ext) for ext in exts): + UploadPackage(full, None, ps.arch, ps.url) + cnt += 1 + if cnt <= 0: + raise Exception("no any package found") return 0