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