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