test/remove.sh
author J. Ali Harlow <ali@juiblex.co.uk>
Tue Jul 05 09:40:01 2016 +0100 (2016-07-05)
changeset 477 6ba4c0f3c9d1
parent 456 bae5adee8c8c
permissions -rwxr-xr-x
Add public URI resolver
     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 "$tmpdir$1" ]; then 
    10 	echo $1: Not in filesystem >&2
    11 	ls -R "$tmpdir" >&2
    12 	exit 1
    13     fi
    14 }
    15 fs_check_no_file()
    16 {
    17     if [ -e "$tmpdir$1" ]; then 
    18 	echo $1: Still in filesystem >&2
    19 	exit 1
    20     fi
    21 }
    22 check_file()
    23 {
    24     $razor list-files | grep -F -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 -F -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 -F -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 -F -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 tmpdir=`mktemp -dt` || exit 1
    63 export RAZOR_ROOT="file:$tmpdir"
    64 $razor init || exit 1
    65 export YUM_URL="file:`pwd`/base"
    66 $razor import-yum || exit 1
    67 $razor install --relocate /usr=/opt zip || exit 1
    68 fs_check_file /opt/var/lib/zip/data.zap
    69 $razor remove zip || exit 1
    70 check_file /opt/bin/zap
    71 check_no_file /opt/bin/zip
    72 fs_check_no_file /opt/var/lib/zip/data.zap
    73 $razor install --relocate /usr=/opt zsh || exit 1
    74 $razor install --relocate /usr=/opt zsh2 || exit 1
    75 $razor remove zsh || exit 1
    76 check_file /etc/zsh.conf
    77 check_no_file /opt/bin/zsh
    78 check_no_file /opt/var/lib/zsh/data.zip
    79 # Installing a package twice isn't handled very well at present
    80 # so just don't do it for now.
    81 #$razor install --relocate /usr=/opt zsh2 || exit 1
    82 fs_check_file /opt/var/lib/zip/data.zap
    83 $razor remove zsh2 zip || exit 1
    84 fs_check_no_file /opt/var/lib/zip/data.zap
    85 rm -rf "$tmpdir"