source: drbl_ui/backup/test_busybox/busybox-1.7.2/examples/undeb @ 250

Last change on this file since 250 was 20, checked in by chris, 17 years ago
File size: 1.3 KB
Line 
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#
7usage() {
8echo "Usage: undeb -c package.deb            <Print control file info>"
9echo "       undeb -l package.deb            <List contents of deb package>"
10echo "       undeb -x package.deb /foo/boo   <Extract deb package to this directory,"
11echo "                                        put . for current directory>"
12exit
13}
14
15deb=$2
16
17exist() {
18if [ "$deb" = "" ]; then
19usage
20elif [ ! -s "$deb" ]; then
21echo "Can't find $deb!"
22exit
23fi
24}
25
26if [ "$1" = "" ]; then
27usage
28elif [ "$1" = "-l" ]; then
29exist
30type more >/dev/null 2>&1 && pager=more
31type 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
34exit
35elif [ "$1" = "-c" ]; then
36exist
37ar -p $deb control.tar.gz | tar -xzO *control
38exit
39elif [ "$1" = "-x" ]; then
40exist
41if [ "$3" = "" ]; then
42usage
43elif [ ! -d "$3" ]; then
44echo "No such directory $3!"
45exit
46fi
47ar -p $deb data.tar.gz | tar -xzvpf - -C $3 || exit
48echo
49echo "Extracted $deb to $3!"
50exit
51else
52usage
53fi
Note: See TracBrowser for help on using the repository browser.