Contents of /trunk/mkinitrd-magellan/busybox/examples/undeb
Parent Directory | Revision Log
Revision 532 -
(show annotations)
(download)
Sat Sep 1 22:45:15 2007 UTC (17 years ago) by niro
File size: 1282 byte(s)
Sat Sep 1 22:45:15 2007 UTC (17 years ago) by niro
File size: 1282 byte(s)
-import if magellan mkinitrd; it is a fork of redhats mkinitrd-5.0.8 with all magellan patches and features; deprecates magellan-src/mkinitrd
1 | #!/bin/sh |
2 | # |
3 | # This should work with the GNU version of tar and gzip! |
4 | # This should work with the bash or ash shell! |
5 | # Requires the programs (ar, tar, gzip, and the pager more or less). |
6 | # |
7 | usage() { |
8 | echo "Usage: undeb -c package.deb <Print control file info>" |
9 | echo " undeb -l package.deb <List contents of deb package>" |
10 | echo " undeb -x package.deb /foo/boo <Extract deb package to this directory," |
11 | echo " put . for current directory>" |
12 | exit |
13 | } |
14 | |
15 | deb=$2 |
16 | |
17 | exist() { |
18 | if [ "$deb" = "" ]; then |
19 | usage |
20 | elif [ ! -s "$deb" ]; then |
21 | echo "Can't find $deb!" |
22 | exit |
23 | fi |
24 | } |
25 | |
26 | if [ "$1" = "" ]; then |
27 | usage |
28 | elif [ "$1" = "-l" ]; then |
29 | exist |
30 | type more >/dev/null 2>&1 && pager=more |
31 | type less >/dev/null 2>&1 && pager=less |
32 | [ "$pager" = "" ] && echo "No pager found!" && exit |
33 | (ar -p $deb control.tar.gz | tar -xzO *control ; echo -e "\nPress enter to scroll, q to Quit!\n" ; ar -p $deb data.tar.gz | tar -tzv) | $pager |
34 | exit |
35 | elif [ "$1" = "-c" ]; then |
36 | exist |
37 | ar -p $deb control.tar.gz | tar -xzO *control |
38 | exit |
39 | elif [ "$1" = "-x" ]; then |
40 | exist |
41 | if [ "$3" = "" ]; then |
42 | usage |
43 | elif [ ! -d "$3" ]; then |
44 | echo "No such directory $3!" |
45 | exit |
46 | fi |
47 | ar -p $deb data.tar.gz | tar -xzvpf - -C $3 || exit |
48 | echo |
49 | echo "Extracted $deb to $3!" |
50 | exit |
51 | else |
52 | usage |
53 | fi |