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

Last change on this file since 3865 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
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.