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

Last change on this file since 3667 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
RevLine 
[821]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() {
[3621]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
[821]14}
15
16rpm=$2
17
18exist() {
[3621]19 if [ -z "${rpm}" ]; then
20 usage
21 elif [ ! -s "${rpm}" ]; then
22 echo "Can't find ${rpm}!"
23 exit 1
24 fi
[821]25}
26
[3621]27if [ -z "$1" ]; then
28 usage
[821]29elif [ "$1" = "-l" ]; then
[3621]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
[821]39elif [ "$1" = "-x" ]; then
[3621]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
[821]51else
[3621]52 usage
[821]53fi
Note: See TracBrowser for help on using the repository browser.