Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/cmd-build
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,10 @@ EOF
# since we may be overriding data from a previous build.
cat "${composejson}" tmp/meta.json "${commitmeta_input_json}" | jq -s add > meta.json

# And add the commit metadata itself, which includes notably the rpmdb pkglist
# in a format that'd be easy to generate diffs out of for higher level tools
"${dn}"/commitmeta_to_json "${workdir}/repo" "${commit}" > commitmeta.json

# Clean up our temporary data
rm tmp -rf
# Back to the toplevel build directory, so we can rename this one
Expand Down
27 changes: 27 additions & 0 deletions src/commitmeta_to_json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/python3 -u

import argparse
import gi
import sys

gi.require_version('OSTree', '1.0')
gi.require_version('Json', '1.0')
from gi.repository import GLib, Gio, OSTree, Json

parser = argparse.ArgumentParser()
parser.add_argument("repo", help="OSTree repo")
parser.add_argument("rev", help="Revision to inspect")
args = parser.parse_args()

r = OSTree.Repo.new(Gio.File.new_for_path(args.repo))
r.open(None)

[_, rev] = r.resolve_rev(args.rev, True)
[_, commit, _] = r.load_commit(rev)
commitmeta = commit.get_child_value(0)

g = Json.Generator.new()
g.set_root(Json.gvariant_serialize(commitmeta))
stdout = Gio.UnixOutputStream.new(sys.stdout.fileno(), False)
g.set_pretty(True)
g.to_stream(stdout)