~vcs-imports/busybox/trunk

« back to all changes in this revision

Viewing changes to examples/unrpm

  • Committer: Eric Andersen
  • Date: 1999-11-24 09:04:33 UTC
  • Revision ID: git-v1:b99df0fd65abe3245fa2d04115326100847f865e
First draft

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh
2
 
#
3
 
# This should work with the GNU version of cpio and gzip!
4
 
# This should work with the bash or ash shell!
5
 
# Requires the programs (cpio, gzip, and the pager more or less).
6
 
#
7
 
usage() {
8
 
        cat <<EOF
9
 
Usage: unrpm -l package.rpm            <List contents of rpm package>
10
 
       unrpm -x package.rpm /foo/boo   <Extract rpm package to this directory,
11
 
                                        put . for current directory>
12
 
EOF
13
 
        exit
14
 
}
15
 
 
16
 
rpm=$2
17
 
 
18
 
exist() {
19
 
        if [ -z "${rpm}" ]; then
20
 
                usage
21
 
        elif [ ! -s "${rpm}" ]; then
22
 
                echo "Can't find ${rpm}!"
23
 
                exit 1
24
 
        fi
25
 
}
26
 
 
27
 
if [ -z "$1" ]; then
28
 
        usage
29
 
elif [ "$1" = "-l" ]; then
30
 
        exist
31
 
        type more >/dev/null 2>&1 && pager=more
32
 
        type less >/dev/null 2>&1 && pager=less
33
 
        [ "$pager" = "" ] && echo "No pager found!" && exit
34
 
        (
35
 
                printf "\nPress enter to scroll, q to Quit!\n\n"
36
 
                rpm2cpio "${rpm}" | cpio -tv --quiet
37
 
        ) | ${pager}
38
 
        exit
39
 
elif [ "$1" = "-x" ]; then
40
 
        exist
41
 
        if [ -z "$3" ]; then
42
 
                usage
43
 
        elif [ ! -d "$3" ]; then
44
 
                echo "No such directory $3!"
45
 
                exit 1
46
 
        fi
47
 
        rpm2cpio "${rpm}" | (umask 0 ; cd "$3" ; cpio -idmuv) || exit
48
 
        echo
49
 
        echo "Extracted ${rpm} to $3!"
50
 
        exit
51
 
else
52
 
        usage
53
 
fi