#!/usr/bin/python3 # ubuntuiso - tool to examine Ubuntu CD (ISO) installation media # Copyright (C) 2008 Canonical Ltd. # Author: Matt Zimmerman # # ################################################################## # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation, version 2 # of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # See file /usr/share/common-licenses/GPL-2 for more details. # # ################################################################## import optparse import subprocess import sys from ubuntutools import getLogger Logger = getLogger() def extract(iso, path): command = ['isoinfo', '-R', '-i', iso, '-x', path] pipe = subprocess.run(command, encoding='utf-8', stdout=subprocess.PIPE, stderr=subprocess.PIPE) if pipe.returncode != 0: sys.stderr.write(pipe.stderr) sys.exit(pipe.returncode) return pipe.stdout def main(): desc = 'Given an ISO, %prog will display the Ubuntu version information' parser = optparse.OptionParser(usage='%prog [options] iso...', description=desc) isos = parser.parse_args()[1] err = False for iso in isos: if len(isos) > 1: prefix = '%s:' % iso else: prefix = '' version = extract(iso, '/.disk/info') if len(version) == 0: Logger.error('%s does not appear to be an Ubuntu ISO' % iso) err = True continue Logger.info(prefix + version) if err: sys.exit(1) if __name__ == '__main__': main() sys.exit(0)