diff options
author | Matěj Cepl <mcepl@cepl.eu> | 2024-10-03 17:25:43 +0200 |
---|---|---|
committer | Matěj Cepl <mcepl@cepl.eu> | 2024-10-03 17:25:43 +0200 |
commit | 2e1f3f561bb5645f0cc86de73c6ecaeb4103e907 (patch) | |
tree | b33fea24b91929ec2d0084635d4806efa56b648b /qst | |
download | quilt_utils-2e1f3f561bb5645f0cc86de73c6ecaeb4103e907.tar.gz |
Initial commit
Diffstat (limited to 'qst')
-rwxr-xr-x | qst | 55 |
1 files changed, 55 insertions, 0 deletions
@@ -0,0 +1,55 @@ +#!/usr/bin/python3 + +import argparse +import glob +import logging +import os +import os.path +import subprocess +import sys +import tempfile +logging.basicConfig(format='%(levelname)s:%(funcName)s:%(message)s', + level=logging.INFO) +log = logging.getLogger('qs') + +res = None +repocd = None +apars = argparse.ArgumentParser() +apars.add_argument('-M', '--multibuild', + help='Build the specified multibuild package') +apars.add_argument('-v', '--verbose', action='count', + help="Print quilt's stdout.") +ares, remainder = apars.parse_known_args() +log.debug(f'remainder = "{remainder}", ({len(remainder)})') +if remainder and remainder[-1]: + spec_file_name = remainder[-1] +else: + spec_file_name = sorted(glob.glob('*.spec'), key=lambda file: len(file))[0] + +if not os.path.exists(spec_file_name): + RuntimeError("File {} doesn't exist!".format(spec_file_name)) + +with tempfile.NamedTemporaryFile(mode='w+', suffix='.spec', + dir=os.curdir) as tmp_spec: + orig_spec = open(spec_file_name, 'r') + multi_step = ares.multibuild + for line in orig_spec: + if line.find('@BUILD_FLAVOR@') > -1: + if multi_step: + line = line.replace('@BUILD_FLAVOR@', multi_step) + tmp_spec.write(line) + tmp_spec.flush() + res = subprocess.run(['quilt', 'setup', '-v'] + remainder[:-2] + + [tmp_spec.name], text=True, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + for line in res.stdout.splitlines(): + log.debug('line = %s', line) + if line.startswith('+ rm -rf '): + repocd = line.split()[3] + break +if ares.verbose: + print(res.stdout) +log.debug('repocd = %s', repocd) +if repocd: + print(repocd) +sys.exit(res.returncode) |