source: MondoRescue/branches/3.3/mindi-busybox/examples/undeb@ 3712

Last change on this file since 3712 was 3621, checked in by Bruno Cornec, 10 years ago

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

File size: 1.3 KB
RevLine 
[821]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() {
[3621]8 cat <<EOF
9Usage: undeb -c package.deb <Print control file info>
10 undeb -l package.deb <List contents of deb package>
11 undeb -x package.deb /foo/boo <Extract deb package to this directory,
12 put . for current directory>
13EOF
14 exit
[821]15}
16
17deb=$2
18
19exist() {
[3621]20 if [ -z "${deb}" ]; then
21 usage
22 elif [ ! -s "${deb}" ]; then
23 echo "Can't find ${deb}!"
24 exit 1
25 fi
[821]26}
27
[3621]28if [ -z "$1" ]; then
29 usage
[821]30elif [ "$1" = "-l" ]; then
[3621]31 exist
32 type more >/dev/null 2>&1 && pager=more
33 type less >/dev/null 2>&1 && pager=less
34 [ -z "${pager}" ] && echo "No pager found!" && exit 1
35 (
36 ar -p "${deb}" control.tar.gz | tar -xzO *control
37 printf "\nPress enter to scroll, q to Quit!\n\n"
38 ar -p "${deb}" data.tar.gz | tar -tzv
39 ) | ${pager}
40 exit
[821]41elif [ "$1" = "-c" ]; then
[3621]42 exist
43 ar -p "${deb}" control.tar.gz | tar -xzO *control
44 exit
[821]45elif [ "$1" = "-x" ]; then
[3621]46 exist
47 if [ -z "$3" ]; then
48 usage
49 elif [ ! -d "$3" ]; then
50 echo "No such directory $3!"
51 exit 1
52 fi
53 ar -p "${deb}" data.tar.gz | tar -xzvpf - -C "$3" || exit
54 echo
55 echo "Extracted ${deb} to $3!"
56 exit
[821]57else
[3621]58 usage
[821]59fi
Note: See TracBrowser for help on using the repository browser.