abstract class TraversingBuildTarget extends BuildTarget
This abstract class provides common functionality for BuildTargets that traverse all files in the input dimension.
It implements BuildTarget in terms of the abstract method buildFile called to build a file in the archive. It is also possible to override the method buildDir to post process directory content.
- Source
- BuildTarget.scala
- Alphabetic
- By Inheritance
- TraversingBuildTarget
- BuildTarget
- FormatBasedExtension
- Extension
- Logger
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new TraversingBuildTarget()
Type Members
-
case class
LocalError(s: String) extends ExtensionError with Product with Serializable
a custom error class for this extension
a custom error class for this extension
- Definition Classes
- Extension
Abstract Value Members
-
abstract
def
buildFile(bf: BuildTask): BuildResult
the main abstract method for building one file
the main abstract method for building one file
- bf
information about input/output file etc
-
abstract
def
inDim: ArchiveDimension
the input dimension/archive folder
-
abstract
def
includeFile(name: String): Boolean
there is no inExt, instead we test to check which files should be used; this is often a test for the file extension
there is no inExt, instead we test to check which files should be used; this is often a test for the file extension
This must be such that all auxiliary files are skipped. see defaultFileExtension if you need an inExt (for meta targets)
- name
the name of the file (no path, with extension)
-
abstract
def
key: String
a string identifying this build target, used for parsing commands, logging, error messages
a string identifying this build target, used for parsing commands, logging, error messages
- Definition Classes
- BuildTarget
-
abstract
def
outDim: ArchiveDimension
the output archive folder
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
apply(modifier: BuildTargetModifier, arch: Archive, in: FilePath): Unit
the main function to run the build target
the main function to run the build target
en empty in filepath addresses the whole archive
- modifier
chooses build, clean, or update
- arch
the archive to build on
- in
the folder inside the archive's inDim folder to which building is restricted
- Definition Classes
- BuildTarget
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
build(a: Archive, up: Update, in: FilePath, errorCont: Option[ErrorHandler]): Unit
entry point for recursive building
-
def
build(a: Archive, up: Update, in: FilePath): Unit
delegates to build
delegates to build
- Definition Classes
- TraversingBuildTarget → BuildTarget
-
def
buildDir(bd: BuildTask, builtChildren: List[BuildTask], level: Level.Level): BuildResult
similar to buildFile but called on every directory (after all its children have been processed)
similar to buildFile but called on every directory (after all its children have been processed)
This does nothing by default and can be overridden if needed.
- bd
information about input/output file etc
- builtChildren
tasks for building the children
- level
error/force level to perform action depending on user input
-
def
catchErrors[A](msg: String, recoverWith: ⇒ A)(code: ⇒ A): A
like its partner but with return value
like its partner but with return value
- Attributes
- protected
- Definition Classes
- Extension
-
def
catchErrors(msg: String)(code: ⇒ Unit): Unit
convenience method for wrapping code in error handler that throws LocalError
convenience method for wrapping code in error handler that throws LocalError
- Attributes
- protected
- Definition Classes
- Extension
-
def
clean(a: Archive, in: FilePath = EmptyPath): Unit
recursively delete output files in parallel (!)
recursively delete output files in parallel (!)
- Definition Classes
- TraversingBuildTarget → BuildTarget
-
def
cleanDir(a: Archive, curr: Current): Unit
additional method that implementations may provide: cleans one directory
additional method that implementations may provide: cleans one directory
does nothing by default
- a
the containing archive
- curr
the outDim directory to be deleted
-
def
cleanFile(a: Archive, curr: Current): Unit
additional method that implementations may provide: cleans one file
additional method that implementations may provide: cleans one file
deletes the output and error file by default, may be overridden to, e.g., delete auxiliary files
- a
the containing archive
- curr
the inDim whose output is to be deleted
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
val
controller: Controller
the controller that this extension is added to; only valid after creation of the extension, i.e., will return null if used in a non-lazy val-field
the controller that this extension is added to; only valid after creation of the extension, i.e., will return null if used in a non-lazy val-field
- Attributes
- protected
- Definition Classes
- Extension
-
lazy val
defaultPrefix: String
- Definition Classes
- Extension
-
def
delete(f: File): Unit
auxiliary method for deleting a file
auxiliary method for deleting a file
- Attributes
- protected
- Definition Classes
- BuildTarget
-
def
destroy: Unit
extension-specific cleanup (override as needed, empty by default)
extension-specific cleanup (override as needed, empty by default)
Extensions may create persistent data structures and threads, but they must clean up after themselves in this method
- Definition Classes
- Extension
-
def
destroyWhenRemainingTasksFinished: Unit
convenience for calling waitUntilRemainingTasksFinished and then destroy
convenience for calling waitUntilRemainingTasksFinished and then destroy
- Definition Classes
- Extension
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
estimateResult(bf: BuildTask): BuildSuccess
estimate the BuildResult without building, e.g., to predict dependencies
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
val
folderName: String
the name that is used for the special file representing the containing folder (without extension), empty by default
the name that is used for the special file representing the containing folder (without extension), empty by default
- Attributes
- protected
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getErrorFile(a: Archive, inPath: FilePath): File
- Attributes
- protected
- def getFolderErrorFile(a: Archive, inPath: FilePath): File
-
def
getFolderOutFile(a: Archive, inPath: FilePath): File
- Attributes
- protected
-
def
getFromFirstArgOrEnvvar(args: List[String], name: String, default: String = ""): String
- Attributes
- protected
- Definition Classes
- Extension
-
def
getOutFile(a: Archive, inPath: FilePath): File
- Attributes
- protected
-
def
getOutPath(a: Archive, outFile: File): FilePath
- Attributes
- protected
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
includeDir(name: String): Boolean
true by default; override to skip auxiliary directories
true by default; override to skip auxiliary directories
- name
the name of the directory (no path)
-
def
initOther(e: Extension): Unit
any extension can initialize other extensions if those are not meant to be added to the ExtensionManager
any extension can initialize other extensions if those are not meant to be added to the ExtensionManager
- Attributes
- protected
- Definition Classes
- Extension
-
def
isApplicable(format: String): Boolean
- format
the format/key/other identifier, for which an extension is needed
- returns
true if this extension is applicable
- Definition Classes
- BuildTarget → FormatBasedExtension
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
log(e: Error): Unit
logs an error - always logged
logs an error - always logged
- Attributes
- protected
- Definition Classes
- Logger
-
def
log(s: ⇒ String, subgroup: Option[String] = None): Unit
logs a message with this logger's logprefix
logs a message with this logger's logprefix
- Attributes
- protected
- Definition Classes
- Logger
-
def
logError(s: ⇒ String): Unit
log as an error message
log as an error message
- Attributes
- protected
- Definition Classes
- Logger
-
def
logGroup[A](a: ⇒ A): A
wraps around a group to create nested logging
wraps around a group to create nested logging
- Attributes
- protected
- Definition Classes
- Logger
-
def
logPrefix: String
defaults to the key
defaults to the key
- Definition Classes
- BuildTarget → Extension → Logger
-
def
logResult(s: String): Unit
auxiliary method for logging results
auxiliary method for logging results
- Attributes
- protected
-
def
logTemp(s: ⇒ String): Unit
temporary logging - always logged
temporary logging - always logged
- Attributes
- protected
- Definition Classes
- Logger
-
def
makeBuildTask(a: Archive, inPath: FilePath, children: List[BuildTask] = Nil): BuildTask
makes a build task for a single file (ignoring built children) or directory
-
def
makeErrorThrower(msg: String): ErrorHandler
an ErrorHandler that wraps an error in a LocalError and throws it
an ErrorHandler that wraps an error in a LocalError and throws it
- Attributes
- protected
- Definition Classes
- Extension
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
outExt: String
the file extension used for generated files, defaults to outDim, override as needed
-
def
parallel: Boolean
if true, multiple files/folders are built in parallel
-
def
producesFrom(outPath: FilePath): Option[FilePath]
if this target produces additional files (e.g., the aux files of LaTeX), this method should map them to the respective main file
if this target produces additional files (e.g., the aux files of LaTeX), this method should map them to the respective main file
- outPath
the output path (relative to archive)
- returns
the input path (relative to inDim)
- val report: Report
-
def
runBuildTask(bt: BuildTask, level: Level.Level): BuildResult
wraps around buildFile and buildDir (which do the actual building) to add error handling, logging, etc.
wraps around buildFile and buildDir (which do the actual building) to add error handling, logging, etc.
- Attributes
- protected
-
def
runBuildTaskIfNeeded(deps: Set[Dependency], bt: BuildTask, up: Update): BuildResult
the entry point for build managers: runs a build task unless (depending on the modifier) nothing has changed
-
def
start(args: List[String]): Unit
extension-specific initialization (override as needed, empty by default)
extension-specific initialization (override as needed, empty by default)
- Definition Classes
- Extension
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- BuildTarget → AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
waitUntilRemainingTasksFinished: Unit
extensions that process tasks in separate threads should override this and wait until those threads are done
extensions that process tasks in separate threads should override this and wait until those threads are done
- Definition Classes
- Extension
Deprecated Value Members
-
def
buildDepsFirst(a: Archive, up: Update, in: FilePath = EmptyPath): Unit
build estimated dependencies first
build estimated dependencies first
this can be used by the trivial build manager to build targets (like latexml) in dependency order provided that estimated dependencies are correct.
For a queue build manager this code is obsolete
- Definition Classes
- TraversingBuildTarget → BuildTarget
- Annotations
- @MMT_TODO( message = "needs review" )
- Deprecated
needs review
-
def
getDepsMap(args: Set[Dependency]): Map[Dependency, Set[Dependency]]
- Attributes
- protected
- Annotations
- @MMT_TODO( message = "needs review" )
- Deprecated
needs review
-
def
getFilesRec(a: Archive, in: FilePath): Set[Dependency]
- Attributes
- protected
- Annotations
- @MMT_TODO( message = "needs review" )
- Deprecated
needs review
-
def
getTestOutFile(a: Archive, inPath: FilePath): File
- Attributes
- protected
- Annotations
- @MMT_TODO( message = "needs review" )
- Deprecated
needs review