| author | J. Ali Harlow <ali@juiblex.co.uk> |
| Thu Jun 09 17:37:09 2016 +0100 (2016-06-09) | |
| changeset 471 | a3e5e3eaf224 |
| parent 389 | 4aac72ec4537 |
| child 475 | 008c75a5e08d |
| permissions | -rwxr-xr-x |
| ali@387 | 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@387 | 7 |
fs_check_file() |
| ali@387 | 8 |
{
|
| ali@387 | 9 |
if [ ! -e "$RAZOR_ROOT$1" ]; then |
| ali@387 | 10 |
echo $1: Not in filesystem >&2 |
| ali@387 | 11 |
ls -R "$RAZOR_ROOT" >&2 |
| ali@387 | 12 |
exit 1 |
| ali@387 | 13 |
fi |
| ali@387 | 14 |
} |
| ali@387 | 15 |
fs_check_file_contents() |
| ali@387 | 16 |
{
|
| ali@387 | 17 |
fs_check_file "$1" |
| ali@387 | 18 |
if [ `cat "$RAZOR_ROOT$1"` != "$2" ]; then |
| ali@387 | 19 |
echo $1: Unexpected contents >&2 |
| ali@387 | 20 |
cat "$RAZOR_ROOT$1" >&2 |
| ali@387 | 21 |
exit 1 |
| ali@387 | 22 |
fi |
| ali@387 | 23 |
} |
| ali@387 | 24 |
fs_check_no_file() |
| ali@387 | 25 |
{
|
| ali@387 | 26 |
if [ -e "$RAZOR_ROOT$1" ]; then |
| ali@387 | 27 |
echo $1: Still in filesystem >&2 |
| ali@387 | 28 |
exit 1 |
| ali@387 | 29 |
fi |
| ali@387 | 30 |
} |
| ali@387 | 31 |
check_file() |
| ali@387 | 32 |
{
|
| ali@456 | 33 |
$razor list-files | grep -x "$1" > /dev/null |
| ali@387 | 34 |
if [ $? -ne 0 ]; then |
| ali@387 | 35 |
echo $1: Not in database >&2 |
| ali@456 | 36 |
$razor list-files >&2 |
| ali@387 | 37 |
exit 1 |
| ali@387 | 38 |
fi |
| ali@456 | 39 |
$razor list-files "$1" | grep -x "$1" > /dev/null |
| ali@387 | 40 |
if [ $? -ne 0 ]; then |
| ali@387 | 41 |
echo $1: Not seen by patterned list >&2 |
| ali@456 | 42 |
$razor list-files "$1" >&2 |
| ali@387 | 43 |
exit 1 |
| ali@387 | 44 |
fi |
| ali@456 | 45 |
pkgs=`$razor list-file-packages "$1"` |
| ali@387 | 46 |
if [ -z "$pkgs" ]; then |
| ali@387 | 47 |
echo $1: Not owned by any package >&2 |
| ali@456 | 48 |
$razor list-file-packages "$1" |
| ali@387 | 49 |
exit 1 |
| ali@387 | 50 |
fi |
| ali@387 | 51 |
for nevra in "$pkgs"; do |
| ali@387 | 52 |
name=`echo $nevra | sed 's/\-.*$//'` |
| ali@456 | 53 |
$razor list-package-files "$name" | grep -x "$1" > /dev/null |
| ali@387 | 54 |
if [ $? -ne 0 ]; then |
| ali@387 | 55 |
echo $1: Not in database for package $name >&2 |
| ali@456 | 56 |
$razor list-package-files "$name" |
| ali@387 | 57 |
exit 1 |
| ali@387 | 58 |
fi |
| ali@387 | 59 |
done |
| ali@387 | 60 |
fs_check_file $1 |
| ali@387 | 61 |
} |
| ali@387 | 62 |
check_no_file() |
| ali@387 | 63 |
{
|
| ali@456 | 64 |
$razor list-files | grep -x "$1" > /dev/null |
| ali@387 | 65 |
if [ $? -eq 0 ]; then |
| ali@387 | 66 |
echo $1: Still in database >&2 |
| ali@387 | 67 |
exit 1 |
| ali@387 | 68 |
fi |
| ali@387 | 69 |
fs_check_no_file $1 |
| ali@387 | 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@387 | 79 |
export RAZOR_ROOT=`mktemp -dt` || exit 1 |
| ali@456 | 80 |
$razor init || exit 1 |
| ali@387 | 81 |
export YUM_URL="file://localhost/`pwd`" |
| ali@456 | 82 |
$razor import-yum || exit 1 |
| ali@456 | 83 |
$razor install --relocate /usr=/opt zip || exit 1 |
| ali@387 | 84 |
fs_check_file_contents /opt/bin/zip zip-1-1 |
| ali@387 | 85 |
fs_check_file /opt/var/lib/zip/data.zap |
| ali@456 | 86 |
$razor install --relocate /usr=/opt zip || exit 1 |
| ali@389 | 87 |
check_install_count zip 2 |
| ali@456 | 88 |
$razor install --relocate /usr=/opt zip || exit 1 |
| ali@389 | 89 |
check_install_count zip 3 |
| ali@387 | 90 |
rm -rf "$RAZOR_ROOT" |