@lib
Syntax:
@lib [ lib_name ]
Helps with code reuse. Occasionally you need to run similar code in multiple goals. The most obvious approach would be to place a code into shared.sh
and invoke it in both goals. The downside is that now you need an additional file(s) and the build file is no more self-contained. @lib
to the resque!
The usage is simple:
@lib lib_name
a() {
echo Hello $1
}
@goal hello_world
@use_lib lib_name
a World
For simplicity can omit name:
@lib
a() {
echo Hello $1
}
@goal hello_world
@use_lib
a World
Operationally @use_lib
is just substituted by content of a corresponding @lib
's body, as if the above goal is declared like:
@goal hello_world
a() {
echo Hello $1
}
a World