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

Last change on this file since 3621 was 3621, checked in by Bruno Cornec, 7 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.