source: packaging/CreateRPMs.sh@ 1145

Last change on this file since 1145 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
Line 
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
14spec_file=qt4.spec
15
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
29cmd_all()
30{
31 run $env_cmd rpmbuild \
32 -D "master_mode 1" \
33 -D "create_zips_script $start_dir/CreateZIPs.sh" \
34 -ba $spec_file
35}
36
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
47cmd_build()
48{
49 local src_base="$1"
50 local src_base_arg=
51 [ -n "$src_base" ] && src_base_arg=-D "QT_SOURCE_TREE $src_base"
52
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" \
56 --short-circuit -bc $spec_file
57}
58
59cmd_install()
60{
61 local src_base="$1"
62 local src_base_arg=
63 [ -n "$src_base" ] && src_base_arg=-D "QT_SOURCE_TREE $src_base"
64
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" \
68 --short-circuit -bi $spec_file
69}
70
71cmd_rpm()
72{
73 run $env_cmd rpmbuild \
74 -D "master_mode 1" \
75 -D "skip_prep_export 1" -D "skip_prep_clean 1" -D "skip_clean 1" \
76 -D "skip_build 1" -D "skip_install 1" \
77 --short-circuit -bb $spec_file
78}
79
80#
81# Main
82#
83
84script_path=$(readlink -e $0)
85script_dir=${script_path%/*}
86script_name=$(basename $0)
87
88start_dir=$(pwd)
89
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
95# Parse arguments
96
97cmd_help()
98{
99 echo \
100"
101Usage:
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
106
107Options:
108 <srcdir> Source tree location (default is BUILD/<product>)
109"
110}
111
112case "$1" in
113 build|install)
114 if [ -n "$2" ]; then
115 [ -d "$2" ] || die "'$2' is not a directory."
116 fi
117 cmd_$1 $(echo "$2" | tr '\\' '/');;
118 all|continue|rpm) cmd_$1;;
119 -h|-?|--help|*) cmd_help;;
120esac
121
122# end of story
123
124exit 0
Note: See TracBrowser for help on using the repository browser.