Add a tool to simply obtain all the latest OpenBuild build logs
Requires a working copy of the project and package before hand - the obs-update script can be used for this.
This commit is contained in:
parent
01a6df8aad
commit
a6e06706ef
1 changed files with 34 additions and 0 deletions
34
Tools/obs-buildlogs.py
Executable file
34
Tools/obs-buildlogs.py
Executable file
|
|
@ -0,0 +1,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()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue