source: projects/vutils/trunk/mkrpmdir @ 1120

Revision 1120, 2.2 KB checked in by daisuke, 14 years ago (diff)

import vutils-2.2.4 from internal cvs repository

Line 
1#!/bin/sh
2#
3# create RPM directory tree like /usr/src/vine and set ~/.rpmmacros
4#
5# Written on Thu Jul 27 2000 by Toru Sagami <czs14350@mb.infoweb.ne.jp>
6# - first shakedown for Vine
7# modify grammer and dir name by Jun Nishii <jun@vinelinux.org>
8
9# requires: rpm > 3.0
10
11CMDNAME=`basename $0`
12
13show_usage () {
14  echo "$CMDNAME:"
15  echo "create \"rpm\" top directory tree and set ~/.rpmmacros"
16  echo "usage: $CMDNAME TOP_DIRECTORY"
17  exit 1
18}
19
20rpm3var () {
21        var=`rpm --showrc \
22         | awk "/-[0-9]+[:=][[:blank:]]+$1[[:blank:]]/ {print \\$3}"`
23        while test -n "`echo $var | egrep '%\{[_a-zA-Z]+\}'`"; do
24                v=`echo $var | sed 's/.*%{\([_a-zA-Z]\+\)}.*/\1/'`
25                w="`rpm3var $v`"
26                var=`echo $var | sed "s,%{\\([_a-zA-Z]\\+\\)},$w,g"`
27        done
28        echo $var
29}
30
31getrpmmacro () {
32        macro=`rpm --showrc | grep ^.*[0-9][:=][[:space:]]"$1" \
33         | sed "s/^.*$1[[:space:]]//"`
34        echo $macro
35}
36
37createRPMdir () {
38mkdir -p $1/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
39mkdir -p $1/RPMS/noarch
40case "`uname -m`" in
41        *86|x86_64)
42        mkdir -p $1/RPMS/{i386,i586,i686}
43        ;;
44        x86_64)
45        mkdir -p $1/RPMS/x86_64
46        ;;
47        sparc|sparc64)
48        mkdir -p $1/RPMS/{sparc,sparc64}
49        ;;
50        ppc*)
51        mkdir -p $1/RPMS/{ppc,ppc64}
52        ;;
53        alpha)
54        mkdir -p $1/RPMS/alpha
55        ;;
56        # dont know about that :-)
57        *)
58        mkdir -p $1/RPMS/{`uname -m`}
59        ;;
60esac
61}
62
63# arg process
64if [ $# = 0 ]; then
65  show_usage
66elif [ -z $HOME ]; then
67  echo "$CMDNAME: \$HOME is not set" && exit 1
68elif [ ! -x /bin/rpm ]; then
69  echo "$CMDNAME: /bin/rpm not found" && exit 1
70elif [ ! -d $1 ]; then
71  echo "$CMDNAME: $1 is not directory" && exit 1
72elif [ ! -w $1 ]; then
73  echo "$CMDNAME: $1 Permission denied" && exit 1
74fi
75
76# nan ka hen dakedo iika
77pushd $1 > /dev/null 2>&1
78TOPDIR=`pwd`
79popd > /dev/null 2>&1
80
81TOPDIR=$TOPDIR/rpm
82RPMMACROS=$HOME/.rpmmacros
83
84createRPMdir $TOPDIR
85
86
87if [ ! -w $RPMMACROS ]; then
88# create simplest macros
89cat << EOF >> $RPMMACROS
90### added by $CMDNAME. see /usr/lib/rpm/macros for more.
91%_topdir                $TOPDIR
92EOF
93
94# we dont want packager tag to be replaced
95PACKAGER=`getrpmmacro packager`
96if [ -z "$PACKAGER" ] ; then
97        PACKAGER="$(whoami) <$(whoami)@$(hostname)>"
98        cat << _EOF_ >> $RPMMACROS
99%packager               $PACKAGER
100_EOF_
101fi
102fi
103
104echo "$CMDNAME: created rpm tree in $TOPDIR and $RPMMACROS."
105exit 0
Note: See TracBrowser for help on using the repository browser.