diff options
-rwxr-xr-x | qs.sh | 6 | ||||
-rwxr-xr-x | qst | 55 |
2 files changed, 61 insertions, 0 deletions
@@ -0,0 +1,6 @@ +#!/bin/sh + +SPECNAME=${1:-*.spec} +REPOCD=$(quilt setup -v ${SPECNAME}|tee /tmp/qs-log.txt|grep '^+ rm -rf '|head -n1|cut -d ' ' -f 4) +cd $REPOCD +echo "$REPOCD" @@ -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) |