source: MondoRescue/branches/3.3/mindi-busybox/examples/unrpm@ 3632

Last change on this file since 3632 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.1 KB
Line 
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#
7usage() {
8 cat <<EOF
9Usage: 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>
12EOF
13 exit
14}
15
16rpm=$2
17
18exist() {
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
27if [ -z "$1" ]; then
28 usage
29elif [ "$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
39elif [ "$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
51else
52 usage
53fi
Note: See TracBrowser for help on using the repository browser.