On Fri, 2019-03-29 at 10:14 +0100, Fabiano Fidêncio wrote: > On Wed, 2019-03-27 at 21:08 -0400, Cole Robinson wrote: > > This script simplifies the process of adding new iso data to the > > test suite and optionally filling in a <media> block for the <os>. > > Call it like > > > > ./scripts/osinfo-db-add-iso.py SHORTID [--arch ARCH] ISOPATH > > > > It will print a <media> block template to stdout, and generate a > > correctly named data file in tests/isodata/ > > > > Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> > > --- > > scripts/osinfo-db-add-iso.py | 113 > > +++++++++++++++++++++++++++++++++++ > > 1 file changed, 113 insertions(+) > > create mode 100755 scripts/osinfo-db-add-iso.py > > > > diff --git a/scripts/osinfo-db-add-iso.py b/scripts/osinfo-db-add- > > iso.py > > new file mode 100755 > > index 0000000..8a16859 > > --- /dev/null > > +++ b/scripts/osinfo-db-add-iso.py > > @@ -0,0 +1,113 @@ > > +#!/usr/bin/env python3 > > + > > +import argparse > > +import distutils.spawn > > +import os > > +import sys > > +import tempfile > > +import time > > + > > + > > +topdir = os.path.realpath(os.path.join(os.path.dirname(__file__), > > "..")) > > +datadir = os.path.join(topdir, "data") > > +sys.path.insert(0, topdir) > > +os.environ["INTERNAL_OSINFO_DB_DATA_DIR"] = datadir > > + > > +import tests.isodata > > +import tests.util > > + > > + > > +def fail(msg): > > + print(msg) > > + sys.exit(1) > > + > > + > > +############################## > > +# main() and option handling # > > +############################## > > + > > +def _parse_args(): > > + desc = ("Helper script for adding iso test data to the test " > > + "suite, and matching <os> <media> data to the DB") > > + parser = argparse.ArgumentParser(description=desc) > > + > > + parser.add_argument("shortid", help="Which <os> short-id " > > + "the ISO is media for") > > + parser.add_argument("iso", help="The path to the ISO media") > > + parser.add_argument("--arch", default="x86_64", > > + help="The OS architecture the media is for. > > default=x86_64") > > + > > + options = parser.parse_args() > > + return options > > + > > + > > +def _main(): > > + """ > > + This is a template for new command line programs. Copy and > > edit > > it! > > + """ > > + options = _parse_args() > > + > > + iso = os.path.realpath(os.path.abspath(options.iso)) > > + isoinfobin = distutils.spawn.find_executable("isoinfo") > > + if not os.path.exists(iso): > > + fail("iso does not exist: %s" % iso) > > + if not isoinfobin: > > + fail("isoinfo is not installed") > > + > > + osxml = None > > + for o in tests.util.DataFiles.oses(): > > + if o.shortid == options.shortid: > > + osxml = o > > + break > > + if not osxml: > > + fail("Did not find any os shortid=%s" % options.shortid) > > + return > > If I understand correctly, it'd simply abort in case I try to add a > new > version of an existing OS, right? For instance, the script would bail > when trying to add the first fedora30 instance. > > It's something we can definitely improve in the feature. * future! [snip] _______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo