1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#!/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()
|