]> Cypherpunks.ru repositories - goredo.git/blobdiff - README
Unify dep*Read/Write name
[goredo.git] / README
diff --git a/README b/README
index 022ae2004815a88d490d6e6af0c3e777a6b20e2e..22489faa05a8cee3b1a8f29b68fb0757f215043d 100644 (file)
--- a/README
+++ b/README
@@ -1,126 +1,4 @@
-*goredo* redo implementation on pure Go
-
-OVERVIEW                                               *goredo-overview*
-
-This is pure Go implementation of DJB's redo (http://cr.yp.to/redo.html)
-build system proposal. Originally it was just a rewrite of redo-c
-(https://github.com/leahneukirchen/redo-c), but later most features of
-apenwarr/redo (https://redo.readthedocs.io/en/latest/) were also
-implemented. Why yet another implementation? It is feature full and has
-better performance comparing to shell and Python implementation.
+Go implementation of djb's redo, Makefile replacement that sucks less.
+See goredo.info and INSTALL for more information.
 goredo is free software: see the file COPYING for copying conditions.
-
-INSTALL                                                 *goredo-install*
-
-Either: >
-    $ go get go.cypherpunks.ru/goredo
-    $ goredo -symlinks
-    $ export PATH=`pwd`:$PATH
-or: >
-    $ git clone git://git.cypherpunks.ru/goredo.git
-    $ cd goredo
-    $ go build
-    $ ./goredo -symlinks
-    $ export PATH=`pwd`:$PATH
-<
-NOTES                                                     *goredo-notes*
-
-* "all" target is used by default
-* stdout is always captured, but no target is created if it was empty
-* empty targets are considered always out of date
-* .do's arguments are relative paths
-* .do search goes up to / by default, but can be limited with either
-  REDO_TOP_DIR environment variable, or by having .redo/top file in it
-* executable .do is run as is
-* shebangless .do is run with /bin/sh -e[x]
-* target's completion messages are written after they finish
-
-FEATURES                                               *goredo-features*
-
-* explicit check that stdout and $3 are not written simultaneously
-* explicit check (similar to apenwarr/redo's one) that generated target
-  was not modified "externally" outside the redo, preventing its
-  overwriting, but continuing the build
-* targets, dependency information and their directories are explicitly
-  synced (can be disabled, should work faster)
-* file's change is detected by comparing its ctime and, if it differs,
-  its BLAKE2b hash. Hash checking is done to prevent false positives
-  (can be disabled, will work faster)
-* files creation is umask-friendly (unlike mkstemp() used in redo-c)
-* coloured messages (can be disabled)
-* verbose debug messages, including out-of-date determination, PIDs,
-  lock acquirings/releases
-* parallel build with jobs limit, optionally in infinite mode
-* optional display of each target's execution time
-* each target's stderr can be displayed with the PID
-* target's stderr can be stored on the disk with TAI64N timestamp
-  prefixes for each line (you can use tai64nlocal utility from
-  daemontools (http://cr.yp.to/daemontools/tai64nlocal.html) to convert
-  them to local time). Captures can be viewed any time later
-
-COMMANDS                                               *goredo-commands*
-
-* redo-ifchange, redo-ifcreate, redo-always (useful with redo-stamp)
-* redo -- same as redo-ifchange, but forcefully and *sequentially* run
-  specified targets
-* redo-log -- display TAI64N timestamped last stderr of the target
-* redo-stamp -- record stamp dependency and consider it non out-of-date
-  if stamp equals to the previous one
-* redo-cleanup -- removes either temporary, or log files, or
-  everything related to goredo
-* redo-whichdo -- .do search paths for specified target (similar to
-  apenwarr/redo): >
-    $ redo-whichdo x/y/a.b.o
-    x/y/a.b.o.do
-    x/y/default.b.o.do
-    x/y/default.o.do
-    x/y/default.do
-    x/default.b.o.do
-    x/default.o.do
-    x/default.do
-    default.b.o.do
-    default.o.do
-    default.do
-    ../default.b.o.do
-    ../default.o.do
-* redo-dot -- dependency DOT graph generator. For example to visualize
-  your dependencies with GraphViz: >
-    $ redo target [...] # to assure that .redo is filled up
-    $ redo-dot target [...] > whatever.dot
-    $ dot -Tpng whatever.dot > whatever.png # possibly add -Gsplines=ortho
-<
-STATE                                                     *goredo-state*
-
-Dependency and build state is kept inside .redo subdirectory in each
-directory touched related the build. Each corresponding target has its
-own, recreated with every rebuild, .dep file. It is recfile
-(https://www.gnu.org/software/recutils/), that could have various
-dependency information (dep.rec with the schema included): >
-
-    Build: 80143f04-bfff-4673-950c-081d712f573d
-
-    Type: ifcreate
-    Target: foo.o.do
-
-    Type: ifchange
-    Target: default.o.do
-    Ctime: 1605721341.253305000
-    Hash: f4929732f96f11e6d4ebe94536b5edef426d00ed0146853e37a87f4295e18eda
-
-    Type: always
-
-    Type: stamp
-    Hash: 5bbdf635932cb16b9127e69b6f3872577efed338f0a4ab6f2c7ca3df6ce50cc9
-<
-LICENCE~
-
-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
-the Free Software Foundation, version 3 of the License.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
- vim: filetype=help
+Home page: http://www.goredo.cypherpunks.ru/