5 Goalfile - introduction, tutorial, and reference for writing goal files
15 =head2 Standard Functions
17 =head3 basename (path)
21 basename ("dir/file.ext") ⇒ "file.ext"
23 Returns the filename part of the path.
29 dirname ("dir/file.ext") ⇒ "dir"
31 Returns the directory part of the path.
33 =head3 extension (filename)
37 extension ("dir/file.ext") ⇒ "ext"
39 Returns the filename extension.
45 sort (["c", "b", "b", "a"]) ⇒ ["a", "b", "c"]
47 This takes a list of strings and sorts it, removing duplicates.
49 =head3 subst (from, to, text)
53 subst ("aa", "AA", "aabbccaa") ⇒ "AAbbccAA"
54 subst ("a.*c", "b", "aaacac") ⇒ "bb"
56 This function works something like make’s C<subst> function, except
57 that C<from> is a regular expression, specifically a L<sed(1)>
58 extended regular expression.
60 =head3 wildcard (pattern)
64 wildcard ("*.c") ⇒ ["bar.c", "foo.c"]
66 The single parameter is a wildcard which is expanded into a list of
67 files using ordinary globbing rules.
69 =head3 wrap (wrapper, list)
73 wrap ("*file", ["bar.c", "foo.c"]) ⇒ [*file("bar.c"), *file("foo.c")]
75 Each element in C<list> is wrapped into a call to C<wrapper(element)>.
76 There are two common uses for this: either to add explicit tactics
77 (such as C<*file>) to a plain list of strings as in the example above;
78 or to turn a list of strings into a list of goal or function calls.
86 Richard W.M. Jones <rjones@redhat.com>
90 Copyright (C) 2020 Richard W.M. Jones
92 Copyright (C) 2020 Red Hat Inc.
94 This program is free software; you can redistribute it and/or modify
95 it under the terms of the GNU General Public License as published by
96 the Free Software Foundation; either version 2 of the License, or
97 (at your option) any later version.
99 This program is distributed in the hope that it will be useful,
100 but WITHOUT ANY WARRANTY; without even the implied warranty of
101 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
102 GNU General Public License for more details.
104 You should have received a copy of the GNU General Public License along
105 with this program; if not, write to the Free Software Foundation, Inc.,
106 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.