/*
goredo -- djb's redo implementation on pure Go
-Copyright (C) 2020-2021 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2020-2022 Sergey Matveev <stargrave@stargrave.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
)
const (
- Version = "1.9.0"
- Warranty = `Copyright (C) 2020-2021 Sergey Matveev
+ Version = "1.25.0"
+ Warranty = `Copyright (C) 2020-2022 Sergey Matveev
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Remove either all goredo's related temporary files, or kept stderr
logs, or everything (including .redo directories) related.`
case CmdNameRedoLog:
- d = `Usage: redo-log target [ | tai64nlocal ]
+ d = `Usage: redo-log [-c] [-r] target [ | tai64nlocal ]
Display kept target's stderr with TAI64N timestamped lines. Only the
last build is kept. You must enable stderr keeping with either -logs,
-or REDO_LOGS=1.`
+or REDO_LOGS=1. -c option show the exact command invoked, start and
+finish time. -r option recursively and linearly show also all deeper
+redo calls and their logs.`
case CmdNameRedoDot:
d = `Usage: redo-dot target [...]
d = `Usage: redo-affects target [...]
List all targets that will be affected by changing the specified ones.`
+ case CmdNameRedoDepFix:
+ d = `Usage: redo-depfix
+
+Traverse over all .redo directories beneath and check if inode's information
+(ctime/mtime) differs. Update dependency if file's content is still the same.`
default:
d = `Usage: goredo -symlinks
goredo expects to be called through the symbolic link to it.
Available commands: redo, redo-affects, redo-always, redo-cleanup,
-redo-dot, redo-ifchange, redo-ifcreate, redo-log, redo-ood,
-redo-sources, redo-stamp, redo-targets, redo-whichdo.`
+redo-depfix, redo-dot, redo-ifchange, redo-ifcreate, redo-log,
+redo-ood, redo-sources, redo-stamp, redo-targets, redo-whichdo.`
}
fmt.Fprintf(os.Stderr, "%s\n\nCommon options:\n", d)
flag.PrintDefaults()
if cmd == CmdNameRedo || cmd == CmdNameRedoIfchange {
fmt.Fprintln(os.Stderr, `
REDO_NO_SYNC -- disable files/directories explicit filesystem syncing
- REDO_INODE_NO_TRUST -- do not trust inode information (except for size)
- and always check file's hash
+ REDO_INODE_TRUST -- {none,ctime,mtime}, either do not trust inode
+ information at all (always check size and hash), or
+ trust its ctime (the default one), or be satisfied
+ with its mtime
REDO_MAKE -- bmake/gmake/none(default) jobserver protocol compatibility`)
}
}