2 goredo -- redo implementation on pure Go
3 Copyright (C) 2020 Sergey Matveev <stargrave@stargrave.org>
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, version 3 of the License.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>.
30 Warranty = `This program is free software: you can redistribute it and/or modify
31 it under the terms of the GNU General Public License as published by
32 the Free Software Foundation, version 3 of the License.
34 This program is distributed in the hope that it will be useful,
35 but WITHOUT ANY WARRANTY; without even the implied warranty of
36 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37 GNU General Public License for more details.
39 You should have received a copy of the GNU General Public License
40 along with this program. If not, see <http://www.gnu.org/licenses/>.`
43 func versionGet() string {
44 return strings.Join([]string{
45 "goredo", Version, "built with", runtime.Version(),
50 fmt.Fprintf(os.Stderr, versionGet()+`
51 Copyright (C) 2020 Sergey Matveev
52 License GPLv3: GNU GPL version 3 <http://gnu.org/licenses/gpl.html>
53 This is free software: you are free to change and redistribute it.
54 There is NO WARRANTY, to the extent permitted by law.
56 redo, redo-{always,cleanup,ifchange,ifcreate,log,stamp,whichdo} must be
57 linked to goredo executable. It determines the command by its own name.
58 You can create them by running: goredo -symlinks.
60 * redo [options] [target ...]
61 forcefully and sequentially build specified targets
63 always build current target. Unusable outside .do
64 * redo-cleanup {full,log,tmp} [...]
65 remove either all goredo's related temporary files, or kept stderr
66 logs, or everything (including .redo directories) related
67 * redo-ifchange target [...]
68 build specified targets in parallel, if they are changed. Record them
69 as dependencies for current target
70 * redo-ifcreate target [...]
71 record ifcreate dependency for current target. Unusable outside .do
72 * redo-log target [ | tai64nlocal ]
73 display kept target's stderr with TAI64N timestamped lines. Only the
74 last build is kept. You must enable stderr keeping with either -logs,
77 record stamp dependency for current target. Unusable outside .do
79 display .do search paths for specified target. Exits successfully
80 if the last .do in output if the found existing one
85 fmt.Fprintln(os.Stderr, `
86 Additional environment variables:
87 NO_COLOR -- disable messages colouring
88 REDO_NO_HASH -- disable dependencies (except redo-stamp-ed) hashing
89 REDO_NO_SYNC -- disable files/directories explicit filesystem syncing
90 REDO_TOP_DIR -- do not search for .do above that directory
91 (it can contain .redo/top as an alternative)`)