@@ -147,7 +147,7 @@ procedure TBuilder.BuildCompileScriptBash;
147147 FScriptStream:= TFileStream.Create(FScriptFile, fmCreate);
148148 try
149149 line:= ' #!/bin/bash' + LineEnding + LineEnding;
150- line:= line + ' echo "******** Compile All ********"' + LineEnding;
150+ line:= line + ' echo "******** Compile ********"' + LineEnding;
151151 line:= line + ' echo' + LineEnding + LineEnding;
152152 for index:= 0 to Pred(FConfig.Entries.Count) do
153153 // for entry in FConfig.Entries do
@@ -156,6 +156,7 @@ procedure TBuilder.BuildCompileScriptBash;
156156 if not FConfig.Entries[index].Active then continue;
157157 if FConfig.Entries[index].Compiler <> cCompilerFPC then continue;
158158 // if FConfig.Entries[index].EntryBinary = cBaselineBinary then continue;
159+ line:= line + ' function ' + FConfig.Entries[index].EntryBinary + ' () {' + LineEnding + LineEnding;
159160 line:= line + ' echo "===== ' + FConfig.Entries[index].Name +' ======"' + LineEnding;
160161 if FConfig.Entries[index].HasRelease then
161162 begin
@@ -188,8 +189,30 @@ procedure TBuilder.BuildCompileScriptBash;
188189 LineEnding;
189190 end ;
190191 line:= line + ' echo "==========="' + LineEnding;
191- line:= line + ' echo' + LineEnding + LineEnding;
192+ line:= line + ' echo' + LineEnding + LineEnding + ' } ' + LineEnding + LineEnding ;
192193 end ;
194+ line:= line + ' if [ $1 == "" ];then' + LineEnding;
195+ for index:= 0 to Pred(FConfig.Entries.Count) do
196+ begin
197+ if not FConfig.Entries[index].Active then continue;
198+ if FConfig.Entries[index].Compiler <> cCompilerFPC then continue;
199+ line:= line + ' ' + FConfig.Entries[index].EntryBinary + LineEnding;
200+ end ;
201+ line:= line + ' else' + LineEnding;
202+ line:= line + ' case $1 in' + LineEnding;
203+ for index:= 0 to Pred(FConfig.Entries.Count) do
204+ begin
205+ if not FConfig.Entries[index].Active then continue;
206+ if FConfig.Entries[index].Compiler <> cCompilerFPC then continue;
207+ line:= line + ' ' + FConfig.Entries[index].EntryBinary + ' )' + LineEnding;
208+ line:= line + ' ' + FConfig.Entries[index].EntryBinary + LineEnding;
209+ line:= line + ' ;;' + LineEnding;
210+ end ;
211+ line:= line + ' *)' + LineEnding;
212+ line:= line + ' echo "Do not recognise $1"' + LineEnding;
213+ line:= line + ' ;;' + LineEnding;
214+ line:= line + ' esac' + LineEnding;
215+ line:= line + ' fi' + LineEnding;
193216 FScriptStream.WriteBuffer(line[1 ], Length(line));
194217 finally
195218 FScriptStream.Free;
@@ -214,13 +237,14 @@ procedure TBuilder.BuildTestScriptBash;
214237 FScriptStream:= TFileStream.Create(FScriptFile, fmCreate);
215238 try
216239 line:= ' #!/bin/bash' + LineEnding + LineEnding;
217- line:= line + ' echo "******** Test All ********"' + LineEnding;
240+ line:= line + ' echo "******** Test ********"' + LineEnding;
218241 line:= line + ' echo' + LineEnding + LineEnding;
219242 for index:= 0 to Pred(FConfig.Entries.Count) do
220243 begin
221244 Write(GenerateProgressBar(index+1 , FConfig.Entries.Count, 50 ), lineBreak);
222245 if not FConfig.Entries[index].Active then continue;
223246 // if FConfig.Entries[index].EntryBinary = cBaselineBinary then continue;
247+ line:= line + ' function ' + FConfig.Entries[index].EntryBinary + ' () {' + LineEnding + LineEnding;
224248 line:= line + ' echo "===== ' + FConfig.Entries[index].Name +' ======"' + LineEnding;
225249 tmpStr:= Format(' %s%s %s' , [
226250 IncludeTrailingPathDelimiter(FConfig.BinFolder),
@@ -234,7 +258,7 @@ procedure TBuilder.BuildTestScriptBash;
234258 cReplaceEntryThreads
235259 ],
236260 [
237- FConfig.InputSSD ,
261+ FConfig.Input ,
238262 IntToStr(FConfig.Entries[index].Threads)
239263 ],
240264 [rfReplaceAll]
@@ -254,8 +278,29 @@ procedure TBuilder.BuildTestScriptBash;
254278 FConfig.OutputHash
255279 ]) + LineEnding;
256280 line:= line + ' echo "==========="' + LineEnding;
257- line:= line + ' echo' + LineEnding + LineEnding;
281+ line:= line + ' echo' + LineEnding + LineEnding + ' }' + LineEnding + LineEnding;
282+ end ;
283+ line:= line + ' if [ $1 == "" ];then' + LineEnding;
284+ for index:= 0 to Pred(FConfig.Entries.Count) do
285+ begin
286+ if not FConfig.Entries[index].Active then continue;
287+ line:= line + ' ' + FConfig.Entries[index].EntryBinary + LineEnding;
288+ end ;
289+ line:= line + ' else' + LineEnding;
290+ line:= line + ' case $1 in' + LineEnding;
291+ for index:= 0 to Pred(FConfig.Entries.Count) do
292+ begin
293+ if not FConfig.Entries[index].Active then continue;
294+ if FConfig.Entries[index].Compiler <> cCompilerFPC then continue;
295+ line:= line + ' ' + FConfig.Entries[index].EntryBinary + ' )' + LineEnding;
296+ line:= line + ' ' + FConfig.Entries[index].EntryBinary + LineEnding;
297+ line:= line + ' ;;' + LineEnding;
258298 end ;
299+ line:= line + ' *)' + LineEnding;
300+ line:= line + ' echo "Do not recognise $1"' + LineEnding;
301+ line:= line + ' ;;' + LineEnding;
302+ line:= line + ' esac' + LineEnding;
303+ line:= line + ' fi' + LineEnding;
259304 FScriptStream.WriteBuffer(line[1 ], Length(line));
260305 finally
261306 FScriptStream.Free;
@@ -272,13 +317,14 @@ procedure TBuilder.BuildRunScriptBash;
272317 FScriptStream:= TFileStream.Create(FScriptFile, fmCreate);
273318 try
274319 line:= ' #!/bin/bash' + LineEnding + LineEnding;
275- line:= line + ' echo "******** Run All ********"' + LineEnding;
320+ line:= line + ' echo "******** Run ********"' + LineEnding;
276321 line:= line + ' echo' + LineEnding + LineEnding;
277322 for index:= 0 to Pred(FConfig.Entries.Count) do
278323 begin
279324 Write(GenerateProgressBar(index+1 , FConfig.Entries.Count, 50 ), lineBreak);
280325 if not FConfig.Entries[index].Active then continue;
281326 if FConfig.Entries[index].EntryBinary = cBaselineBinary then continue;
327+ line:= line + ' function ' + FConfig.Entries[index].EntryBinary + ' () {' + LineEnding + LineEnding;
282328 line:= line + ' echo "===== ' + FConfig.Entries[index].Name +' ======"' + LineEnding;
283329 // Run for SSD
284330 tmpStr:= StringsReplace(
@@ -309,31 +355,37 @@ procedure TBuilder.BuildRunScriptBash;
309355 cReplaceEntryThreads
310356 ],
311357 [
312- FConfig.InputSSD ,
358+ FConfig.Input ,
313359 IntToStr(FConfig.Entries[index].Threads)
314360 ],
315361 [rfReplaceAll]
316362 );
317363 line:= line + ' echo "-- SSD --"' + LineEnding + tmpStr + LineEnding;
318-
319- // Run for HDD
320- { tmpStr:= StringsReplace(
321- tmpStr,
322- [
323- FConfig.InputSSD,
324- cSSD
325- ],
326- [
327- FConfig.InputHDD,
328- cHDD
329- ],
330- [rfReplaceAll]
331- );
332- line:= line + 'echo "-- HDD --"' + LineEnding + tmpStr + LineEnding;}
333-
334364 line:= line + ' echo "==========="' + LineEnding;
335- line:= line + ' echo' + LineEnding + LineEnding;
365+ line:= line + ' echo' + LineEnding + LineEnding + ' }' + LineEnding + LineEnding;
366+ end ;
367+ line:= line + ' if [ $1 == "" ];then' + LineEnding;
368+ for index:= 0 to Pred(FConfig.Entries.Count) do
369+ begin
370+ if not FConfig.Entries[index].Active then continue;
371+ if FConfig.Entries[index].EntryBinary = cBaselineBinary then continue;
372+ line:= line + ' ' + FConfig.Entries[index].EntryBinary + LineEnding;
373+ end ;
374+ line:= line + ' else' + LineEnding;
375+ line:= line + ' case $1 in' + LineEnding;
376+ for index:= 0 to Pred(FConfig.Entries.Count) do
377+ begin
378+ if not FConfig.Entries[index].Active then continue;
379+ if FConfig.Entries[index].Compiler <> cCompilerFPC then continue;
380+ line:= line + ' ' + FConfig.Entries[index].EntryBinary + ' )' + LineEnding;
381+ line:= line + ' ' + FConfig.Entries[index].EntryBinary + LineEnding;
382+ line:= line + ' ;;' + LineEnding;
336383 end ;
384+ line:= line + ' *)' + LineEnding;
385+ line:= line + ' echo "Do not recognise $1"' + LineEnding;
386+ line:= line + ' ;;' + LineEnding;
387+ line:= line + ' esac' + LineEnding;
388+ line:= line + ' fi' + LineEnding;
337389 FScriptStream.WriteBuffer(line[1 ], Length(line));
338390 finally
339391 FScriptStream.Free;
0 commit comments