logo

class

build::Exec

sys::Obj
  build::Task
    build::Exec
  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  }

More Info

Slots