From 93a9cd24521c5e6e5271b72102574f34322aa4b2 Mon Sep 17 00:00:00 2001 From: Jakub Kadlčík Date: Apr 08 2019 16:10:15 +0000 Subject: [PATCH 1/2] Replace runnecessary regexes with str.endswith --- diff --git a/prunerepo b/prunerepo index 1cd20dc..930e938 100755 --- a/prunerepo +++ b/prunerepo @@ -4,7 +4,6 @@ import subprocess import sys import argparse import os -import re import time import shutil @@ -46,7 +45,7 @@ get_latest_packages_cmd = get_all_packages_cmd + [ '--latest-limit=1' ] def is_srpm(package): - return re.match(r'.*\.src\.rpm$', package) + return package.endswith(".src.rpm") def rm_file(path): @@ -149,7 +148,7 @@ def clean_copr(): continue if not os.path.isfile(os.path.join(dir_path, 'build.info')): continue - if [item for item in os.listdir(dir_path) if re.match(r'.*\.rpm$', item)]: + if [item for item in os.listdir(dir_path) if item.endswith(".rpm")]: continue if time.time() - os.stat(dir_path).st_mtime <= args.days * 24 * 3600: continue From e27c81bae58a63a286ceff4f6c1b6633145f4b0a Mon Sep 17 00:00:00 2001 From: Jakub Kadlčík Date: Apr 09 2019 13:51:32 +0000 Subject: [PATCH 2/2] Do not store SRPMs for failed builds Please see https://pagure.io/copr/copr/issue/619 --- diff --git a/prunerepo b/prunerepo index 930e938..94b8417 100755 --- a/prunerepo +++ b/prunerepo @@ -136,9 +136,15 @@ def recreate_repo(): return run_cmd(createrepo_cmd) +def is_rpm_in_dir(path): + files = os.listdir(path) + srpm_ex = (".src.rpm", ".nosrc.rpm") + return any([f for f in files if f.endswith(".rpm") and not f.endswith(srpm_ex)]) + + def clean_copr(): """ - Remove whole copr build dirs if they no longer contain a srpm/rpm file + Remove whole copr build dirs if they no longer contain a RPM file """ log_info("Cleaning COPR repository...") for dir_name in os.listdir(args.path): @@ -148,7 +154,7 @@ def clean_copr(): continue if not os.path.isfile(os.path.join(dir_path, 'build.info')): continue - if [item for item in os.listdir(dir_path) if item.endswith(".rpm")]: + if is_rpm_in_dir(dir_path): continue if time.time() - os.stat(dir_path).st_mtime <= args.days * 24 * 3600: continue