| |
@@ -42,8 +42,9 @@
|
| |
'--repofrompath=prunerepo_query,'+os.path.abspath(args.path),
|
| |
'--repo=prunerepo_query',
|
| |
'--refresh',
|
| |
- '--queryformat="%{location}"',
|
| |
+ '--queryformat=%{location}',
|
| |
'--quiet',
|
| |
+ '--setopt=skip_if_unavailable=False',
|
| |
]
|
| |
|
| |
get_latest_packages_cmd = get_all_packages_cmd + [ '--latest-limit=1' ]
|
| |
@@ -80,10 +81,10 @@
|
| |
return
|
| |
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
| |
(stdout, stderr) = process.communicate()
|
| |
+ sys.stderr.write(stderr.decode(encoding='utf-8'))
|
| |
if process.returncode != 0:
|
| |
- print(stderr.decode(encoding='utf-8'), file=sys.stderr)
|
| |
sys.exit(1)
|
| |
- return [line.strip('"') for line in stdout.decode(encoding='utf-8').split()] # NOTE: for some reason the get_all_packages_cmd gives output as b'"..."\n"..."\n', hence line.strip('"')
|
| |
+ return stdout.decode(encoding='utf-8').splitlines()
|
| |
|
| |
|
| |
def get_package_build_time(package_path):
|
| |
@@ -100,7 +101,7 @@
|
| |
Get paths to rpm packages in the repository according to given repoquery_cmd
|
| |
"""
|
| |
stdout = run_cmd(repoquery_cmd) # returns srpms as well
|
| |
- rel_rpms_paths = [relpath.strip('"') for relpath in stdout if not is_srpm(relpath)]
|
| |
+ rel_rpms_paths = [relpath for relpath in stdout if not is_srpm(relpath)]
|
| |
abs_rpms_paths = [os.path.abspath(os.path.join(args.path, relpath)) for relpath in rel_rpms_paths]
|
| |
return abs_rpms_paths
|
| |
|
| |
@@ -131,6 +132,9 @@
|
| |
log_info('Removing obsoleted packages...')
|
| |
was_deletion = False
|
| |
latest_rpms = get_rpms(get_latest_packages_cmd)
|
| |
+ if not latest_rpms:
|
| |
+ log_info("No RPMs available")
|
| |
+ return was_deletion
|
| |
all_rpms = get_rpms(get_all_packages_cmd)
|
| |
to_remove_rpms = set(all_rpms) - set(latest_rpms)
|
| |
for rpm in to_remove_rpms:
|
| |
One of the largest repositories got massive data loss [1] which was
probably caused by improperly calling createrepo (without
skip_if_unavailable=False).
While we are on it
- let's not trash stderr if the exit status is 0
- drop the left/right doublequote around package name in queryformat
Please take a look.
[1] https://pagure.io/copr/copr/issue/1090