// // Copyright (c) 2006, Brian Frank and Andy Frank // Licensed under the Academic Free License version 3.0 // // History: // 4 Nov 06 Brian Frank Creation // ** ** Task is the base class for commands to run in build scripts. ** The library of Task subclasses represent the reusable units of ** work which are composed together to implement build script ** Targets. ** abstract class Task { ////////////////////////////////////////////////////////////////////////// // Construction ////////////////////////////////////////////////////////////////////////// ** ** Construct with parent script. ** new make(BuildScript script) { this.script = script } ////////////////////////////////////////////////////////////////////////// // Run ////////////////////////////////////////////////////////////////////////// ** ** Run this task. If there is an error, the report them via ** the script's log and throw FatalBuildErr if the script should ** be terminated. ** abstract Void run() ////////////////////////////////////////////////////////////////////////// // Env ////////////////////////////////////////////////////////////////////////// ** ** Return the parent build script associated with this task. ** readonly BuildScript script ** ** Convenience for script.log ** BuildLog log() { return script.log } ** ** Log an error and return a FatalBuildErr instance ** FatalBuildErr fatal(Str msg, Err? err := null) { log.error(msg, err) return FatalBuildErr(msg, err) } }