test/remove.sh
author J. Ali Harlow <ali@juiblex.co.uk>
Sat Aug 23 16:07:09 2014 +0100 (2014-08-23)
changeset 441 cf499fd51df7
parent 372 6e93e5485947
child 456 bae5adee8c8c
permissions -rwxr-xr-x
Drop drive letter from path to razor root when RAZOR_ROOT set.

If the RAZOR_ROOT environment variable was set to eg., /root then on
Microsoft Windows we were trying to use paths such as /rootC:/Programs
which is obviously wrong. Instead we should drop the drive letter
giving paths of the form /root/Programs. Note that the drive letter is
_not_ migrated to C:/root/Programs: If a root of C:/root was desired
then RAZOR_ROOT would have been set to C:/root.
     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"