test/named-root.sh
author J. Ali Harlow <ali@juiblex.co.uk>
Thu Oct 09 17:27:41 2014 +0100 (2014-10-09)
changeset 455 df914f383f5c
child 456 bae5adee8c8c
permissions -rwxr-xr-x
Support downloading from local repository even without libcurl

Using the --url option of the razor executable, it is possible
to specify a yum repository on the local machine (eg., on installation
media) and import from there, eg.,:

C> razor --url file:///d:/ import-yum

This will be handled by libcurl if available but if not, an internal
copy routine will be used.

Note that if Microsoft's KTM implementation of atomic transactions is
used, then the current directory must support atomic transactions
(also improve error messages for this, and other, cases).
     1 #!/bin/sh
     2 check_file()
     3 {
     4     ../src/razor list-files | grep -x "$1" > /dev/null
     5     if [ $? -ne 0 ]; then
     6 	echo $1: Not in database >&2
     7 	../src/razor list-files >&2
     8 	exit 1
     9     fi
    10     ../src/razor list-files c: | grep -x "$1" > /dev/null
    11     if [ $? -ne 0 ]; then
    12 	echo $1: Not seen by named root list >&2
    13 	../src/razor list-files c: >&2
    14 	exit 1
    15     fi
    16     ../src/razor list-files "$1" | grep -x "$1" > /dev/null
    17     if [ $? -ne 0 ]; then
    18 	echo $1: Not seen by patterned list >&2
    19 	../src/razor list-files "$1" >&2
    20 	exit 1
    21     fi
    22     pkgs=`../src/razor list-file-packages "$1"`
    23     if [ -z "$pkgs" ]; then
    24 	echo $1: Not owned by any package >&2
    25 	../src/razor list-file-packages "$1"
    26 	exit 1
    27     fi
    28     for nevra in "$pkgs"; do
    29 	name=`echo $nevra | sed 's/\-.*$//'`
    30 	../src/razor list-package-files "$name" | grep -x "$1" > /dev/null
    31 	if [ $? -ne 0 ]; then
    32 	    echo $1: Not in database for package $name >&2
    33 	    ../src/razor list-package-files "$name"
    34 	    exit 1
    35 	fi
    36     done
    37     if [ ! -e "$RAZOR_ROOT$1" ]; then 
    38 	echo $1: Not in filesystem >&2
    39 	exit 1
    40     fi
    41 }
    42 tmpdir=`mktemp -dt` || exit 1
    43 export RAZOR_ROOT="$tmpdir/x-"
    44 mkdir -p "$tmpdir/x-/var/lib" "$tmpdir/x-c:"
    45 export RAZOR_NO_ROOT_NAME_CHECKS=1
    46 ../src/razor init || exit 1
    47 export YUM_URL="file://localhost/`pwd`"
    48 ../src/razor import-yum || exit 1
    49 ../src/razor install --relocate /usr=c:/test zap || exit 1
    50 ../src/razor install --relocate /usr=c:/test zip || exit 1
    51 check_file c:/test/bin/zap
    52 check_file c:/test/bin/zip
    53 rm -rf "$tmpdir"