class

Hace::HaceFile

Inherits YAML::Serializable::Strict < YAML::Serializable < Reference < Object

Parser for Hacefile.yml

Constructors

new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
Source
new(*, __context_for_yaml_serializable ctx : YAML::ParseContext, __node_for_yaml_serializable node : YAML::Nodes::Node)
Source

Class methods

auto(arguments = [] of String, filename = "Hacefile.yml", cli_args = [] of String)
Source
default_filename

Config file to use when none was given explicitly: prefer Hacefile.yml, falling back to a Makefile in the current directory so hace works out of the box in make-based projects.

Source
load_file(filename, variable_overrides : Hash(String, String) = {} of String => String)
Source
process_arguments(hacefile, arguments : Array(String))
Source
run(arguments = [] of String, filename = "Hacefile.yml", cli_args = [] of String, run_all : Bool = false, dry_run : Bool = false, question : Bool = false, keep_going : Bool = false, parallel : Bool = false)
Source

Instance methods

env=(env : Hash(String, Nil | String))
Source
gen_tasks(dry_run : Bool = false, requested : Array(String) = [] of String)
Source
patterns
Source
patterns=(patterns : Array(PatternRule))
Source
resolve_patterns(requested : Array(String) = [] of String) : HaceFile

Synthesize concrete tasks from patterns for dependencies that no explicit task produces, mirroring make's implicit rule behavior. Runs to a fixpoint so patterns can chain (e.g. "%.c: %.tpl" behind "%.o: %.c"). requested holds targets named on the command line, which also get a chance to be instantiated even if nothing depends on them.

Source
shell
Source
shell=(shell : String | Nil)
Source
tasks
Source
tasks=(tasks : Hash(String, CommandTask))
Source
variables
Source
variables=(variables : Hash(String, Value))
Source