]> git.pld-linux.org Git - packages/rpm-build-tools.git/blob - builder.sh
- if no parameters print usage,
[packages/rpm-build-tools.git] / builder.sh
1 #!/bin/bash
2
3
4 VERSION="\
5 Build package utility from PLD CVS repository
6 V 0.1 (C) 1999 Tomasz K³oczko".
7
8 PATH="/bin:/usr/bin:/usr/sbin:/sbin:/usr/X11R6/bin"
9
10 SPECFILE=""
11 BE_VERBOSE=""
12 QUIET=""
13 CVSROOT=${$CVSROOT:-""}
14 LOGFILE=""
15
16 PATCHES=""
17 SOURCES=""
18 ICON=""
19 PACKAGE_RELEASE=""
20 PACKAGE_VERSION=""
21 PACKAGE_NAME=""
22
23 dumb_spec="\
24 Summary:        -
25 Name:           dumb
26 Version:        dumb
27 Release:        dumb
28 Copyright:      dumb
29 Group:          -
30 %description
31
32 %prep
33 echo SOURCEDIR=%{_sourcedir}
34 echo SPECS=%{_specdir}"
35
36 #---------------------------------------------
37 # functions
38
39 usage()
40 {
41 echo "\
42 Usage: builder [-V] [--version] [-a] [--as_anon] [-b] [--build]
43         [-d <cvsroot>] [--cvsroot <cvsroot>] [-g] [--get] [-h] [--help]
44         [-l <logfile>] [--logtofile <logfile>] [-q] [--quiet] 
45         [-v] [--verbose] <package>.spec
46
47         -V, --version   - output builder version
48         -a, --as_anon   - get files via pserver as cvs@cvs.pld.org.pl,
49         -b, --build     - get all files from CVS repo and build
50                           package from <package>.spec,
51         -d, --cvsroot   - setup \$CVSROOT,
52         -g, --get       - get <package>.spec and all relayted files from
53                           CVS repo,
54         -h, --help      - this message,
55         -l, --logtofile - log all to file,
56         -q, --quiet     - be quiet,
57         -v, --verbose   - be verbose,
58
59 "
60 }
61
62 parse_spec()
63 {
64     sed -e "s/^Summary:*/Summary:\%dump/I" $SPECFILE > $SPECFILE.__
65
66     SOURCES="`rpm -bp --test $SPECFILE.__ 2>&1 | awk '/ SOURCE[0-9]+/ {print $3}'`"
67     PATCHES="`rpm -bp --test $SPECFILE.__ 2>&1 | awk '/ PATCH[0-9]+/ {print $3}'`"
68     ICON="`rpm -bp --test $SPECFILE.__ 2>&1 | awk '/^Icon:/ {print $2}' ${SPEC}`"
69     PACKAGE_NAME="`rpm -bp --test $SPECFILE.__ 2>&1 | awk '/ name/ {print $3}'`"
70     PACKAGE_VERSION="`rpm -bp --test $SPECFILE.__ 2>&1 | awk '/ PACKAGE_VERSION/ {print $3}'`"
71     PACKAGE_RELEASE="`rpm -bp --test $SPECFILE.__ 2>&1 | awk '/ PACKAGE_RELEASE/ {print $3}'`"
72
73     rm -f $SPECFILE.__
74
75     if [ "$BE_VERBOSE" != "" ]; then
76         echo -e "- Sources :\n  " $SOURCES
77         echo -e "- Patches :\n  " $PATCHES
78         if [ "$ICON" != "" ]; then
79             echo -e "- Icon    :\n  " $ICON
80         else
81             echo -e "- Icon    :  *no package icon*"
82         fi
83         echo -e "- Name    : " $PACKAGE_NAME
84         echo -e "- Version : " $PACKAGE_VERSION
85         echo -e "- Release : " $PACKAGE_RELEASE
86     fi
87 }
88
89 get_spec()
90 {
91     echo "get_spec"
92 }
93
94 get_all_files()
95 {
96     echo "get_all_files"
97 }
98
99 build_package()
100 {
101     echo "build_package"
102 }
103
104
105 #---------------------------------------------
106 # main()
107
108 if [ "$#" == 0 ]; then
109     usage;
110     exit
111 fi
112
113 while test $# -gt 0 ; do
114     case "${1}" in
115         -V | --version )
116             COMMAND="version"; shift ;;
117         -a | --as_anon )
118             CVSROOT=":pserver:cvs@cvs.pld.org.pl:/cvsroot"; shift ;;
119         -b | --build )
120             COMMAND="build"; shift ;;
121         -d | --cvsroot )
122             shift; CVSROOT="${1}"; shift ;;
123         -g | --get )
124             COMMAND="get"; shift ;;
125         -h | --help )
126             COMMAND="usage"; shift ;;
127         -l | --logtofile )
128             shift; LOGFILE="${1}"; shift ;;
129         -q | --quiet )
130             QUIET="1"; shift ;;
131         -v | --verbose )
132             BE_VERBOSE="1"; shift ;;
133         * )
134             SPECFILE="${1}"; shift ;;
135     esac
136 done
137
138 case "$COMMAND" in
139     "build" )
140         if [ "$SPECFILE" != "" ]; then
141             get_spec;
142             parse_spec;
143             get_all_files;
144             build_package;
145         else
146             echo "ERROR: spec file name not specified.";
147             usage;
148         fi
149         ;;
150     "get" )
151         if [ "$SPECFILE" != "" ]; then
152             get_spec;
153             parse_spec;
154             get_all_files;
155         else
156             echo "ERROR: spec file name not specified.";
157             usage;
158         fi
159         ;;
160     "usage" )
161         usage;;
162     "version" )
163         echo "$VERSION";;
164 esac
This page took 0.050015 seconds and 3 git commands to generate.