diff options
Diffstat (limited to 'examples')
-rwxr-xr-x | examples/unrpm | 65 |
1 files changed, 35 insertions, 30 deletions
diff --git a/examples/unrpm b/examples/unrpm index 7fd3676..f48550b 100755 --- a/examples/unrpm +++ b/examples/unrpm @@ -5,44 +5,49 @@ # Requires the programs (cpio, gzip, and the pager more or less). # usage() { -echo "Usage: unrpm -l package.rpm <List contents of rpm package>" -echo " unrpm -x package.rpm /foo/boo <Extract rpm package to this directory," -echo " put . for current directory>" -exit + cat <<EOF +Usage: unrpm -l package.rpm <List contents of rpm package> + unrpm -x package.rpm /foo/boo <Extract rpm package to this directory, + put . for current directory> +EOF + exit } rpm=$2 exist() { -if [ "$rpm" = "" ]; then -usage -elif [ ! -s "$rpm" ]; then -echo "Can't find $rpm!" -exit -fi + if [ -z "${rpm}" ]; then + usage + elif [ ! -s "${rpm}" ]; then + echo "Can't find ${rpm}!" + exit 1 + fi } -if [ "$1" = "" ]; then -usage +if [ -z "$1" ]; then + usage elif [ "$1" = "-l" ]; then -exist -type more >/dev/null 2>&1 && pager=more -type less >/dev/null 2>&1 && pager=less -[ "$pager" = "" ] && echo "No pager found!" && exit -(echo -e "\nPress enter to scroll, q to Quit!\n" ; rpm2cpio $rpm | cpio -tv --quiet) | $pager -exit + exist + type more >/dev/null 2>&1 && pager=more + type less >/dev/null 2>&1 && pager=less + [ "$pager" = "" ] && echo "No pager found!" && exit + ( + printf "\nPress enter to scroll, q to Quit!\n\n" + rpm2cpio "${rpm}" | cpio -tv --quiet + ) | ${pager} + exit elif [ "$1" = "-x" ]; then -exist -if [ "$3" = "" ]; then -usage -elif [ ! -d "$3" ]; then -echo "No such directory $3!" -exit -fi -rpm2cpio $rpm | (umask 0 ; cd $3 ; cpio -idmuv) || exit -echo -echo "Extracted $rpm to $3!" -exit + exist + if [ -z "$3" ]; then + usage + elif [ ! -d "$3" ]; then + echo "No such directory $3!" + exit 1 + fi + rpm2cpio "${rpm}" | (umask 0 ; cd "$3" ; cpio -idmuv) || exit + echo + echo "Extracted ${rpm} to $3!" + exit else -usage + usage fi |