test/remove.sh
author J. Ali Harlow <ali@juiblex.co.uk>
Thu Oct 09 17:27:41 2014 +0100 (2014-10-09)
changeset 455 df914f383f5c
parent 372 6e93e5485947
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 fs_check_file()
     3 {
     4     if [ ! -e "$RAZOR_ROOT$1" ]; then 
     5 	echo $1: Not in filesystem >&2
     6 	ls -R "$RAZOR_ROOT" >&2
     7 	exit 1
     8     fi
     9 }
    10 fs_check_no_file()
    11 {
    12     if [ -e "$RAZOR_ROOT$1" ]; then 
    13 	echo $1: Still in filesystem >&2
    14 	exit 1
    15     fi
    16 }
    17 check_file()
    18 {
    19     ../src/razor list-files | grep -x "$1" > /dev/null
    20     if [ $? -ne 0 ]; then
    21 	echo $1: Not in database >&2
    22 	../src/razor list-files >&2
    23 	exit 1
    24     fi
    25     ../src/razor list-files "$1" | grep -x "$1" > /dev/null
    26     if [ $? -ne 0 ]; then
    27 	echo $1: Not seen by patterned list >&2
    28 	../src/razor list-files "$1" >&2
    29 	exit 1
    30     fi
    31     pkgs=`../src/razor list-file-packages "$1"`
    32     if [ -z "$pkgs" ]; then
    33 	echo $1: Not owned by any package >&2
    34 	../src/razor list-file-packages "$1"
    35 	exit 1
    36     fi
    37     for nevra in "$pkgs"; do
    38 	name=`echo $nevra | sed 's/\-.*$//'`
    39 	../src/razor list-package-files "$name" | grep -x "$1" > /dev/null
    40 	if [ $? -ne 0 ]; then
    41 	    echo $1: Not in database for package $name >&2
    42 	    ../src/razor list-package-files "$name"
    43 	    exit 1
    44 	fi
    45     done
    46     fs_check_file $1
    47 }
    48 check_no_file()
    49 {
    50     ../src/razor list-files | grep -x "$1" > /dev/null
    51     if [ $? -eq 0 ]; then
    52 	echo $1: Still in database >&2
    53 	exit 1
    54     fi
    55     fs_check_no_file $1
    56 }
    57 export RAZOR_ROOT=`mktemp -dt` || exit 1
    58 ../src/razor init || exit 1
    59 export YUM_URL="file://localhost/`pwd`"
    60 ../src/razor import-yum || exit 1
    61 ../src/razor install --relocate /usr=/opt zip || exit 1
    62 fs_check_file /opt/var/lib/zip/data.zap
    63 ../src/razor remove zip || exit 1
    64 check_file /opt/bin/zap
    65 check_no_file /opt/bin/zip
    66 fs_check_no_file /opt/var/lib/zip/data.zap
    67 ../src/razor install --relocate /usr=/opt zsh || exit 1
    68 ../src/razor install --relocate /usr=/opt zsh2 || exit 1
    69 ../src/razor remove zsh || exit 1
    70 check_file /etc/zsh.conf
    71 check_no_file /opt/bin/zsh
    72 check_no_file /opt/var/lib/zsh/data.zip
    73 # Installing a package twice isn't handled very well at present
    74 # so just don't do it for now.
    75 #../src/razor install --relocate /usr=/opt zsh2 || exit 1
    76 fs_check_file /opt/var/lib/zip/data.zap
    77 ../src/razor remove zsh2 zip || exit 1
    78 fs_check_no_file /opt/var/lib/zip/data.zap
    79 rm -rf "$RAZOR_ROOT"