source: packaging/CreateRPMs.sh@ 1161

Last change on this file since 1161 was 1136, checked in by Dmitry A. Kuminov, 12 years ago

packaging: Add 'continue' command that allows to continue failed build.

  • Property svn:eol-style set to native
File size: 2.4 KB
RevLine 
[1061]1#!/bih/sh
2
3#
4# Qt4 distribution RPM archive creator.
5#
6# NOTE: This script requires the basic set of unix tools such as cp, mkdir,
7# pwd, readlink, find etc.
8#
9
10#
11# Defaults
12#
13
[1079]14spec_file=qt4.spec
[1068]15
[1061]16#
17# Functions
18#
19
20die() { echo "ERROR: $@"; cd "$start_dir"; exit 1; }
21
22run()
23{
24 echo "$@"
25 "$@" || die \
26"Last command failed (exit status $?)."
27}
28
[1068]29cmd_all()
[1061]30{
[1068]31 run $env_cmd rpmbuild \
[1092]32 -D "master_mode 1" \
33 -D "create_zips_script $start_dir/CreateZIPs.sh" \
[1075]34 -ba $spec_file
[1061]35}
36
[1136]37cmd_continue()
38{
39 run $env_cmd rpmbuild \
40 -D "master_mode 1" \
41 -D "skip_prep_export 1" \
42 -D "skip_prep_clean 1" \
43 -D "create_zips_script $start_dir/CreateZIPs.sh" \
44 -ba $spec_file
45}
46
[1068]47cmd_build()
48{
49 local src_base="$1"
[1092]50 local src_base_arg=
51 [ -n "$src_base" ] && src_base_arg=-D "QT_SOURCE_TREE $src_base"
[1068]52
[1092]53 run $env_cmd rpmbuild $src_base_arg \
54 -D "master_mode 1" \
55 -D "skip_prep_export 1" -D "skip_prep_clean 1" -D "skip_clean 1" \
[1075]56 --short-circuit -bc $spec_file
57}
[1068]58
[1075]59cmd_install()
60{
61 local src_base="$1"
[1092]62 local src_base_arg=
63 [ -n "$src_base" ] && src_base_arg=-D "QT_SOURCE_TREE $src_base"
[1075]64
[1092]65 run $env_cmd rpmbuild $src_base_arg \
66 -D "master_mode 1" \
67 -D "skip_prep_export 1" -D "skip_prep_clean 1" -D "skip_clean 1" \
[1075]68 --short-circuit -bi $spec_file
[1068]69}
70
71cmd_rpm()
72{
73 run $env_cmd rpmbuild \
[1092]74 -D "master_mode 1" \
75 -D "skip_prep_export 1" -D "skip_prep_clean 1" -D "skip_clean 1" \
[1075]76 -D "skip_build 1" -D "skip_install 1" \
77 --short-circuit -bb $spec_file
[1068]78}
79
[1061]80#
81# Main
82#
83
84script_path=$(readlink -e $0)
85script_dir=${script_path%/*}
86script_name=$(basename $0)
87
88start_dir=$(pwd)
89
[1068]90[ -f "$start_dir/env.sh" ] && . "$start_dir/env.sh"
91
92env_cmd=
93[ -f "$start_dir/env.cmd" ] && env_cmd="cmd /c env.cmd"
94
[1061]95# Parse arguments
96
97cmd_help()
98{
99 echo \
100"
101Usage:
[1092]102 $script_name all Do everything (RPM, SRPM, ZIP)
103 $script_name build [<srcdir>] Build product (in BUILD/<product>)
104 $script_name install [<srcdir>] Install product (to BUILDROOT/<product>)
105 $script_name rpm Build RPMs only
[1061]106
107Options:
[1098]108 <srcdir> Source tree location (default is BUILD/<product>)
[1061]109"
110}
111
112case "$1" in
[1092]113 build|install)
[1061]114 if [ -n "$2" ]; then
[1075]115 [ -d "$2" ] || die "'$2' is not a directory."
[1092]116 fi
117 cmd_$1 $(echo "$2" | tr '\\' '/');;
[1136]118 all|continue|rpm) cmd_$1;;
[1061]119 -h|-?|--help|*) cmd_help;;
120esac
121
122# end of story
123
124exit 0
Note: See TracBrowser for help on using the repository browser.