| author | J. Ali Harlow <ali@juiblex.co.uk> |
| Mon Mar 05 09:43:14 2018 +0000 (2018-03-05) | |
| changeset 493 | 06f70d662e39 |
| parent 456 | bae5adee8c8c |
| permissions | -rwxr-xr-x |
| ali@382 | 1 |
#!/bin/sh |
| ali@456 | 2 |
if [ $# -gt 0 ]; then |
| ali@456 | 3 |
razor="$1" |
| ali@456 | 4 |
else |
| ali@456 | 5 |
razor=../src/razor |
| ali@456 | 6 |
fi |
| ali@382 | 7 |
fs_check_file() |
| ali@382 | 8 |
{
|
| ali@475 | 9 |
if [ ! -e "$tmpdir$1" ]; then |
| ali@382 | 10 |
echo $1: Not in filesystem >&2 |
| ali@475 | 11 |
ls -R "$tmpdir" >&2 |
| ali@382 | 12 |
exit 1 |
| ali@382 | 13 |
fi |
| ali@382 | 14 |
} |
| ali@382 | 15 |
fs_check_file_contents() |
| ali@382 | 16 |
{
|
| ali@382 | 17 |
fs_check_file "$1" |
| ali@475 | 18 |
if [ `cat "$tmpdir$1"` != "$2" ]; then |
| ali@382 | 19 |
echo $1: Unexpected contents >&2 |
| ali@475 | 20 |
cat "$tmpdir$1" >&2 |
| ali@382 | 21 |
exit 1 |
| ali@382 | 22 |
fi |
| ali@382 | 23 |
} |
| ali@382 | 24 |
fs_check_no_file() |
| ali@382 | 25 |
{
|
| ali@475 | 26 |
if [ -e "$tmpdir$1" ]; then |
| ali@382 | 27 |
echo $1: Still in filesystem >&2 |
| ali@382 | 28 |
exit 1 |
| ali@382 | 29 |
fi |
| ali@382 | 30 |
} |
| ali@382 | 31 |
check_file() |
| ali@382 | 32 |
{
|
| ali@475 | 33 |
$razor list-files | grep -F -x "$1" > /dev/null |
| ali@382 | 34 |
if [ $? -ne 0 ]; then |
| ali@382 | 35 |
echo $1: Not in database >&2 |
| ali@456 | 36 |
$razor list-files >&2 |
| ali@382 | 37 |
exit 1 |
| ali@382 | 38 |
fi |
| ali@475 | 39 |
$razor list-files "$1" | grep -F -x "$1" > /dev/null |
| ali@382 | 40 |
if [ $? -ne 0 ]; then |
| ali@382 | 41 |
echo $1: Not seen by patterned list >&2 |
| ali@456 | 42 |
$razor list-files "$1" >&2 |
| ali@382 | 43 |
exit 1 |
| ali@382 | 44 |
fi |
| ali@456 | 45 |
pkgs=`$razor list-file-packages "$1"` |
| ali@382 | 46 |
if [ -z "$pkgs" ]; then |
| ali@382 | 47 |
echo $1: Not owned by any package >&2 |
| ali@456 | 48 |
$razor list-file-packages "$1" |
| ali@382 | 49 |
exit 1 |
| ali@382 | 50 |
fi |
| ali@382 | 51 |
for nevra in "$pkgs"; do |
| ali@382 | 52 |
name=`echo $nevra | sed 's/\-.*$//'` |
| ali@475 | 53 |
$razor list-package-files "$name" | grep -F -x "$1" > /dev/null |
| ali@382 | 54 |
if [ $? -ne 0 ]; then |
| ali@382 | 55 |
echo $1: Not in database for package $name >&2 |
| ali@456 | 56 |
$razor list-package-files "$name" |
| ali@382 | 57 |
exit 1 |
| ali@382 | 58 |
fi |
| ali@382 | 59 |
done |
| ali@382 | 60 |
fs_check_file $1 |
| ali@382 | 61 |
} |
| ali@382 | 62 |
check_no_file() |
| ali@382 | 63 |
{
|
| ali@475 | 64 |
$razor list-files | grep -F -x "$1" > /dev/null |
| ali@382 | 65 |
if [ $? -eq 0 ]; then |
| ali@382 | 66 |
echo $1: Still in database >&2 |
| ali@382 | 67 |
exit 1 |
| ali@382 | 68 |
fi |
| ali@382 | 69 |
fs_check_no_file $1 |
| ali@382 | 70 |
} |
| ali@389 | 71 |
check_install_count() |
| ali@389 | 72 |
{
|
| ali@456 | 73 |
count=`$razor list "$1" | wc -l` |
| ali@389 | 74 |
if [ "$count" != "$2" ]; then |
| ali@389 | 75 |
echo $1: Install count $count, should be $2 >&2 |
| ali@389 | 76 |
exit 1 |
| ali@389 | 77 |
fi |
| ali@389 | 78 |
} |
| ali@382 | 79 |
set_repository() |
| ali@382 | 80 |
{
|
| ali@475 | 81 |
export YUM_URL="file:`pwd`/$1" |
| ali@382 | 82 |
cp $1/repodata/primary.xml.gz $1/repodata/filelists.xml.gz . |
| ali@382 | 83 |
rm -rf rpms |
| ali@475 | 84 |
ln -s $1/Packages rpms |
| ali@382 | 85 |
} |
| ali@475 | 86 |
tmpdir=`mktemp -dt` || exit 1 |
| ali@475 | 87 |
export RAZOR_ROOT="file:$tmpdir" |
| ali@456 | 88 |
$razor init || exit 1 |
| ali@382 | 89 |
set_repository base |
| ali@456 | 90 |
$razor import-yum || exit 1 |
| ali@456 | 91 |
$razor install --relocate /usr=/opt zip || exit 1 |
| ali@382 | 92 |
fs_check_file_contents /opt/bin/zip zip-1-1 |
| ali@382 | 93 |
fs_check_file /opt/var/lib/zip/data.zap |
| ali@382 | 94 |
trap "set_repository base" 0 |
| ali@382 | 95 |
set_repository updates |
| ali@456 | 96 |
$razor import-yum || exit 1 |
| ali@456 | 97 |
$razor update --relocate /usr=/opt || exit 1 |
| ali@382 | 98 |
check_file /opt/bin/zip |
| ali@382 | 99 |
fs_check_file_contents /opt/bin/zip zip-2-1 |
| ali@382 | 100 |
fs_check_file /opt/var/lib/zip/data.zap |
| ali@456 | 101 |
$razor remove zip || exit 1 |
| ali@382 | 102 |
fs_check_no_file /opt/var/lib/zip/data.zap |
| ali@386 | 103 |
set_repository base |
| ali@456 | 104 |
$razor import-yum || exit 1 |
| ali@456 | 105 |
$razor install --relocate /usr=/opt zip || exit 1 |
| ali@456 | 106 |
$razor install --relocate /usr=/opt zip || exit 1 |
| ali@389 | 107 |
check_install_count zip 2 |
| ali@386 | 108 |
set_repository updates |
| ali@456 | 109 |
$razor import-yum || exit 1 |
| ali@456 | 110 |
$razor update --relocate /usr=/opt || exit 1 |
| ali@386 | 111 |
check_file /opt/bin/zip |
| ali@386 | 112 |
fs_check_file_contents /opt/bin/zip zip-2-1 |
| ali@386 | 113 |
fs_check_file /opt/var/lib/zip/data.zap |
| ali@389 | 114 |
check_install_count zip 1 |
| ali@456 | 115 |
$razor remove zip || exit 1 |
| ali@386 | 116 |
fs_check_no_file /opt/var/lib/zip/data.zap |
| ali@389 | 117 |
set_repository base |
| ali@456 | 118 |
$razor import-yum || exit 1 |
| ali@456 | 119 |
$razor install --relocate /usr=/opt zip || exit 1 |
| ali@456 | 120 |
$razor update --relocate /usr=/opt zip || exit 1 |
| ali@389 | 121 |
check_install_count zip 1 |
| ali@475 | 122 |
rm -rf "$tmpdir" |