
1 // 2 // Copyright (c) 2006, Brian Frank and Andy Frank 3 // Licensed under the Academic Free License version 3.0 4 // 5 // History: 6 // 4 Nov 06 Brian Frank Creation 7 // 8 9 ** 10 ** Exec is used to run an external OS process 11 ** 12 class Exec : Task 13 { 14 15 new make(BuildScript script, Str[] cmd, File dir := null) 16 : super(script) 17 { 18 this.process = Process.make(cmd, dir) 19 } 20 21 override Void run() 22 { 23 cmd := process.command.join(" ") 24 try 25 { 26 log.info("Exec [$cmd]") 27 result := process.run 28 if (result != 0) throw Err.make 29 } 30 catch (Err err) 31 { 32 if (log.isDebug) err.trace 33 throw fatal("Exec failed [$cmd]") 34 } 35 } 36 37 Process process 38 }