8
8
CACHED=" "
9
9
EXTRA=" "
10
10
NUMBER=" "
11
+ OPEN=" "
12
+ FILE=" "
11
13
12
14
# Retrieve variable from recursive config files
13
15
grab () {
@@ -84,34 +86,30 @@ headers() {
84
86
}
85
87
86
88
# Parse command arguments
87
- while getopts " :eprca:n:f:" options; do
89
+ while getopts " :eprca:n:o: f:" options; do
88
90
case " ${options} " in
89
91
e )
90
- EMULATOR=" -e"
91
- ;;
92
+ EMULATOR=" -e" ;;
92
93
p )
93
- PAUSE=" -p"
94
- ;;
94
+ PAUSE=" -p" ;;
95
95
r )
96
- TEST=" -r"
97
- ;;
96
+ TEST=" -r" ;;
98
97
c )
99
- CACHED=" -c"
100
- ;;
98
+ CACHED=" -c" ;;
101
99
a )
102
- EXTRA=$OPTARG
103
- ;;
100
+ EXTRA=$OPTARG ;;
104
101
n )
105
- NUMBER=$OPTARG
106
- ;;
102
+ NUMBER=$OPTARG ;;
103
+ o )
104
+ OPEN=$OPTARG ;;
107
105
f )
108
106
if [ -e " $BASE " ]; then
109
107
BASE=$OPTARG
108
+ FILE=" -f"
110
109
else
111
110
echo " Selected config file not found"
112
111
exit 1
113
- fi
114
- ;;
112
+ fi ;;
115
113
\? )
116
114
;;
117
115
esac
@@ -120,7 +118,12 @@ done
120
118
shift $(( OPTIND - 1 ))
121
119
EXTRA=" $EXTRA $@ "
122
120
123
- # Find config in parent
121
+ # Test for open config file
122
+ if [ -z " $FILE " ] && echo " $OPEN " | grep -q -E ' *includes$' ; then
123
+ BASE=$OPEN
124
+ fi
125
+
126
+ # Check for config in parent dir
124
127
if [ ! -e " $BASE " ]; then
125
128
if [ -e " ../$BASE " ]; then
126
129
echo " Using parent dir config"
133
136
# Redirect command to new window
134
137
if [ -n " $EMULATOR " ]; then
135
138
if [ -n " $NUMBER " ]; then
136
- $( grab terminal) ezbuild $PAUSE $TEST $CACHED -n $NUMBER $EXTRA
137
- else
138
- $( grab terminal) ezbuild $PAUSE $TEST $CACHED $EXTRA
139
+ NUMBER=" -n $NUMBER "
139
140
fi
141
+ if [ -n " $OPEN " ]; then
142
+ OPEN=" -o $OPEN "
143
+ fi
144
+ FILE=" -f $BASE "
145
+
146
+ $( grab terminal) ezbuild $PAUSE $TEST $CACHED $NUMBER $OPEN $FILE $EXTRA
140
147
exit 0
141
148
fi
142
149
143
150
cd $( grab cd)
151
+ caching=$( grab caching)
152
+ OPENC=$( echo " $OPEN " | sed " $caching " )
144
153
145
154
if [ -n " $TEST " ]; then
146
155
# Run latest build
147
- runcmd=$( echo $( grab tester) | sed " s:%output:$( grab output) :" )
148
- runargs=$( grab testargs)
156
+ runcmd=$( echo $( grab tester) | sed " s:%output:$( grab output) : ; s:%openc: $OPENC : ; s:%open: $OPEN : " )
157
+ runargs=$( grab testargs 1 )
149
158
rundir=$( grab testdir)
150
159
cd $rundir
151
160
echo " $runcmd $EXTRA $runargs "
@@ -156,23 +165,23 @@ else
156
165
output=$( grab output)
157
166
num=$( grab num)
158
167
159
- # Run caching reg on files
160
- caching=$( grab caching)
168
+ # Run caching regex on files
161
169
cached=$( echo " $files " | sed " $caching " )
162
170
depfinder=$( grab depfinder)
171
+ filesc=$files
163
172
173
+ # Remove cached items from file list
164
174
if [ -n " $CACHED " ]; then
165
- # Remove cached items from file list
166
175
if [ -n " $caching " ]; then
167
176
IFS=' '
168
- for val in $files ; do
177
+ for val in $filesc ; do
169
178
cacheval=$( echo " $val " | sed " $caching ; s:^ ::" )
170
179
# If source or header files newer than cache
171
180
if [ -e " $cacheval " -a " $val " -ot " $cacheval " ]; then
172
181
echo " Checking headers for $val "
173
182
h=$( headers " $depfinder " " $cacheval " " $val " )
174
183
if [ -z " $h " ]; then
175
- files =$( echo $files | sed " s:$val ::g" )
184
+ filesc =$( echo $filesc | sed " s:$val ::g" )
176
185
else
177
186
echo $h
178
187
fi
181
190
fi
182
191
fi
183
192
184
- # Check if all files in cache
193
+ # Check if all files are in cache
185
194
echo " "
186
- if [ -z " $files " -a -n " $cached " ]; then
195
+ if [ -z " $filesc " -a -n " $cached " ]; then
187
196
if [ -e $output ]; then
188
197
echo " No files changed"
189
198
exit 2
@@ -207,13 +216,11 @@ else
207
216
fi
208
217
209
218
# Run command with substitutions
210
- buildcmd=$( echo $buildcmd | sed " s:%files:$files : ; s:%cached:$cached : ; s:%output:$output :" )
219
+ buildcmd=$( echo $buildcmd | sed " s:%ncfiles: $filesc : ; s:% files:$files : ; s:%cached:$cached : ; s:%output:$output : ; s:%openc: $OPENC : ; s:%open: $OPEN :" )
211
220
echo " $buildcmd$buildargs "
212
221
$buildcmd $buildargs
213
222
fi
214
223
done
215
-
216
- chmod +x $output
217
224
fi
218
225
219
226
# Pause at end
0 commit comments