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