#!/usr/bin/env python import os import subprocess import argparse import glob def remove_old_files(): files = glob.glob("*.log") for file in files: os.remove(file) def download(): repos = subprocess.Popen(['osc', 'repositories'], stdout=subprocess.PIPE) for line in repos.stdout: command = ['osc', 'buildlog', '--last'] + line.split() filename = "-".join(line.split()) + ".log" print("Downloading logs using: {}".format(" ".join(command))) buildlog = subprocess.Popen(command, stdout=subprocess.PIPE) print("Writing log to {}".format(filename)) file = open(filename, "w") if buildlog.stderr != None: print("Errors: {}".format(buildlog.stderr)) for log_line in buildlog.stdout: file.write(log_line) print("Finished") parser = argparse.ArgumentParser(description="Download OpenBuild logs using osc. All the logs for each architecture from the last completed builds are downloaded and stored as .log files. Must be run from a working copy that is already checked out, eg after running obs-update.") args = parser.parse_args() remove_old_files() download()