From bfe1b6e9a1655ec62cfb4c0405b67fec8f493c4c Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Sep 20 2018 13:35:37 +0000 Subject: Add get-test-deps (resolve-test-dependencies) script Signed-off-by: Andrei Stepanov --- diff --git a/beakerlib-libraries.spec b/beakerlib-libraries.spec index ba80235..70dd3a1 100644 --- a/beakerlib-libraries.spec +++ b/beakerlib-libraries.spec @@ -29,12 +29,15 @@ Beakerlib Libraries are used by beakerlib tests to encapsulate common complex ta %build %install -rm -rf %{buildroot} -mkdir -p %{buildroot}%{libraries_path} -cp -rf * %{buildroot}%{libraries_path} +find . -maxdepth 2 -mindepth 2 '(' -path './bin/*' -o -path './.git*' ')' -prune -o -type d \ + -exec sh -c 'install -v -d $RPM_BUILD_ROOT%libraries_path/$(dirname "{}")/Library' ';' \ + -exec sh -c 'cp -v -a "{}" $RPM_BUILD_ROOT%libraries_path/$(dirname "{}")/Library' ';' +install -d "$RPM_BUILD_ROOT/%_bindir" +install -m755 "bin/get-test-deps" "$RPM_BUILD_ROOT/%_bindir" %clean rm -rf $RPM_BUILD_ROOT %files -%{libraries_path} +%libraries_path +%_bindir/get-test-deps diff --git a/bin/get-test-deps b/bin/get-test-deps new file mode 100755 index 0000000..c211d47 --- /dev/null +++ b/bin/get-test-deps @@ -0,0 +1,194 @@ +#!/bin/bash +# +# DESCRIPTION +# ----------- +# This script resolves dependencies of the given beakerlib libraries installed +# in BEAKER_LIBRARY_PATH. Dependencies are resolved from Makefiles which +# contains Requires and RhtsRequires fields specifying RPM dependencies. +# +# RhtsRequires are mandatory RPM requirements that need to be installed before +# running the test. +# +# Requires are optional RPM requirements that the harness should try to install +# on the system-under-test (SUT), but they are not mandatory. +# +# RETURNS +# ------- +# After the script finishes, it prints two lines, with space delimited list of +# components from RhtsRequires and Requires. +# +# BEAKERLIB_LIBRARY_PATH - path with the libraries +# +# AUTHORS +# ------- +# Jakub Heger +# Martin Kyral +# Miroslav Vadkerti +# Andrei Stepanov +# + +PROG="${PROG:-${0##*/}}" +[ -z "$BEAKERLIB_LIBRARY_PATH" ] && BEAKERLIB_LIBRARY_PATH="/mnt/libraries" + +function print_info() { + printf ":: %s\n" "$@" +} + +function print_error() { + printf "Error: %s\n" "$@" +} + +function exit_error() { + print_error "$@" + exit 1 +} + +function help() { +cat <