X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=docs%2FGoalfile.pod;h=37f3c07c7b2c637f48c426070618c5ca831a5487;hb=580298444204f92785a7ac78c4529e95e3cba40d;hp=da4b1428ba50093bc6691edc885054905f79105b;hpb=70c689283bb2c1ba07704be7562767daf82b4d46;p=goals.git diff --git a/docs/Goalfile.pod b/docs/Goalfile.pod index da4b142..37f3c07 100644 --- a/docs/Goalfile.pod +++ b/docs/Goalfile.pod @@ -12,6 +12,106 @@ Goalfile - introduction, tutorial, and reference for writing goal files =head1 REFERENCE +=head2 Standard Functions + +=head3 basename (path) + +For example: + + basename ("dir/file.ext") ⇒ "file.ext" + +Returns the filename part of the path. + +=head3 dirname (path) + +For example: + + dirname ("dir/file.ext") ⇒ "dir" + +Returns the directory part of the path. + +=head3 extension (filename) + +For example: + + extension ("dir/file.ext") ⇒ "ext" + +Returns the filename extension. + +=head3 head (list) + +For example: + + head (["a", "b", "c"]) ⇒ "a" + +Returns the head (first) element of the list. + +=head3 join (list1, list2) + +For example: + + join (["a", "b"], ["c", "d"]) ⇒ ["a", "b", "c", "d"] + +Concatenate C and C. It's not usually necessary to use +this function since goals automatically flattens lists within lists +into simple lists in many cases. + +=head3 realpath (filename) + +For example: + + realpath ("./tests") ⇒ "/home/user/tests" + +Run the L command to return the resolved absolute path of +the C parameter. + +=head3 sort (list) + +For example: + + sort (["c", "b", "b", "a"]) ⇒ ["a", "b", "c"] + +This takes a list of strings and sorts it, removing duplicates. + +=head3 subst (from, to, text) + +For example: + + subst ("aa", "AA", "aabbccaa") ⇒ "AAbbccAA" + subst ("a.*c", "b", "aaacac") ⇒ "bb" + +This function works something like make’s C function, except +that C is a regular expression, specifically a L +extended regular expression. + +=head3 tail (list) + +For example: + + tail (["a", "b", "c"]) ⇒ ["b", "c"] + +Returns the tail (all except first) elements of the list. + +=head3 wildcard (pattern) + +For example: + + wildcard ("*.c") ⇒ ["bar.c", "foo.c"] + +The single parameter is a wildcard which is expanded into a list of +files using ordinary globbing rules. + +=head3 wrap (wrapper, list) + +For example: + + wrap ("*file", ["bar.c", "foo.c"]) ⇒ [*file("bar.c"), *file("foo.c")] + +Each element in C is wrapped into a call to C. +There are two common uses for this: either to add explicit tactics +(such as C<*file>) to a plain list of strings as in the example above; +or to turn a list of strings into a list of goal or function calls. + =head1 SEE ALSO L.