Commit graph

29 commits

Author SHA1 Message Date
Avery Pennarun
0dcc685739 Minor clarifications to redo install instructions.
Reported-by: @DRMacIver on twitter
2019-03-03 19:35:32 -05:00
Avery Pennarun
22dd0cdd6b Move _all.do -> all.do and slightly update docs.
all.do's main job was to print a "nothing much to do" message after
running.  Nowadays it actually does do stuff, so we can remove the
warning, making _all.do redundant.
2018-12-31 15:07:18 -05:00
Avery Pennarun
f6fe00db5c Directory reorg: move code into redo/, generate binaries in bin/.
It's time to start preparing for a version of redo that doesn't work
unless we build it first (because it will rely on C modules, and
eventually be rewritten in C altogether).

To get rolling, remove the old-style symlinks to the main programs, and
rename those programs from redo-*.py to redo/cmd_*.py.  We'll also move
all library functions into the redo/ dir, which is a more python-style
naming convention.

Previously, install.do was generating wrappers for installing in
/usr/bin, which extend sys.path and then import+run the right file.
This made "installed" redo work quite differently from running redo
inside its source tree.  Instead, let's always generate the wrappers in
bin/, and not make anything executable except those wrappers.

Since we're generating wrappers anyway, let's actually auto-detect the
right version of python for the running system; distros can't seem to
agree on what to call their python2 binaries (sigh). We'll fill in the
right #! shebang lines.  Since we're doing that, we can stop using
/usr/bin/env, which will a) make things slightly faster, and b) let us
use "python -S", which tells python not to load a bunch of extra crap
we're not using, thus improving startup times.

Annoyingly, we now have to build redo using minimal/do, then run the
tests using bin/redo.  To make this less annoying, we add a toplevel
./do script that knows the right steps, and a Makefile (whee!) for
people who are used to typing 'make' and 'make test' and 'make clean'.
2018-12-04 02:53:40 -05:00
Avery Pennarun
d0607d0091 Refactor the huge README.md into the more structured mkdocs.
I also cleaned up the installation section and added links to various
competing redo implementations.

The new README.md is basically just link to the docs on
readthedocs.org, and a link to the mailing list.

These docs need a *lot* more work, but this is enough of an improvement
that I'll commit it anyway for now.
2018-11-16 05:22:09 -05:00
Alexey Shamrin
1ad6e8ca0d escape $2 in generated compile script example (#19) 2018-11-07 00:55:53 -05:00
Alexey Shamrin
59eb7e8f1e add link to projects using redo; fix t/example mention (#20)
also rename t/111-compile2 to t/111-example
2018-11-07 00:54:57 -05:00
Avery Pennarun
0fc2e46708 minimal/do: add support for -x -v -d -c options.
-x, -v, and -d are the same as redo.

-c means "continuable", which disables the feature that deletes (and
forgets) all targets at the start of each run.  This is a little risky,
since minimal/do still doesn't understand dependencies, but it allows
you to run minimal/do several times in succession, so that

    minimal/do -c a
    minimal/do -c b
is the same as
    minimal/do a b
2018-10-17 02:57:33 -04:00
Daniele Varrazzo
adbaaf38ce Use py-setproctitle to clean up ps output in redo scripts
* Change the process title with a cleaned-up version of the script
* Document the use of setproctitle in the README
2018-10-11 03:52:20 -04:00
Daniel Benamy
4c09289fb4 Fix missing blank line that breaks README.md formatting. 2018-10-11 03:30:31 -04:00
Rob Donnelly
587ad39b03 Add installation instructions 2018-10-11 03:28:54 -04:00
Avery Pennarun
cb05a7bd98 Nowadays there is a "non-recursive make considered harmful" paper.
Of course there is!  Let's complete the circle by linking to it,
because it links to this project (among many others).
2018-09-18 13:23:57 -04:00
Avery Pennarun
21f88094d5 Change definitions of $1,$2,$3 to match djb's redo.
If you use "redo --old-args", it will switch back to the old
(apenwarr-style) arguments for now, to give you time to update your .do
scripts.  This option will go away eventually.

Note: minimal/do doesn't understand the --old-args option.  If you're using
minimal/do in your project, keep using the old one until you update your use
of $1/$2, and then update to the new one.

apenwarr-style default.o.do:
   $1      foo
   $2      .o
   $3      whatever.tmp

djb-style default.o.do:
   $1      foo.o
   $2      foo
   $3      whatever.tmp

apenwarr-style foo.o.do:
   $1      foo.o
   $2      ""
   $3      whatever.tmp

djb-style foo.o.do:
   $1      foo.o
   $2      foo.o  (I think?)
   $3      whatever.tmp
2011-12-31 02:49:39 -05:00
Avery Pennarun
656c3c583c Docs: recommend adding redo-ifchange with a lot of targets at a time.
Some people don't know to do this, and their scripts are unnecessarily slow
because of it.
2011-05-08 04:25:51 -04:00
Avery Pennarun
0a14db937c README.md: mention the mailing list nearer to the top. 2011-02-22 02:16:37 -08:00
Avery Pennarun
2ef9d69b7b README.md: typo fix for my previous fix. 2011-02-21 15:02:22 -08:00
Avery Pennarun
0ce949fb81 README: a bunch of improvements to answer recent questions.
Inspired by some questions send to me in private email.
2011-02-21 05:11:59 -08:00
Avery Pennarun
a2bce72255 Simplify autodependency examples.
Turns out we don't need sed to process the output of gcc -MD.  We can just
do this:

	read DEPS <filename.deps

The 'read' command in sh actually handles backslashes correctly, so we don't
have to sed them out after all.  And then a simple ${DEPS#*:} removes the
"target:" prefix from the dependency line, and we're done!
2011-02-21 04:00:53 -08:00
Avery Pennarun
a5536fb25b Merge branch 'master' of git://github.com/danvk/redo
* 'master' of git://github.com/danvk/redo:
  fix a few typos in README.md
2011-01-16 16:14:02 -08:00
Avery Pennarun
fdd8b57403 Update README with latest changes.
- minimal/do is bigger now

- minimal/do is public domain

- link to busybox-w32 as a hint to win32 users

- Instead of talking about "Redofile", just explain how to do it with a case
  statement in default.do

- Don't worry about $1 and $2; djb didn't complain :)

- Explain how the search-parent-dirs feature works.  The semantics are now
  that the .do file runs with $PWD set to the dir containing the .do file,
  not the one containing the target.  (This is backwards compatible since
  the two directories always used to be identical.  So now we just change
  the documentation and it's all good.)

- Mention that you can send messages to the mailing list without
  subscribing.
2011-01-15 22:13:50 -08:00
Dan Vanderkam
29d0c5b28c fix a few typos in README.md 2011-01-15 09:55:02 -05:00
Miles Gould
4017495c12 Fixed markdown errors in README - code samples now correctly formatted. 2011-01-11 14:02:49 +00:00
Avery Pennarun
f641e52e3b Handle .do files that start with "#!/" to specify an explicit interpreter.
Now you can have your .do files interpreted by whatever interpreter you
want.
2011-01-01 22:10:14 -08:00
Jonathan Wakely
fabe969fd8 Fix a couple of typos in the README. 2010-12-14 17:56:18 -08:00
Avery Pennarun
3dd8d081be minimal/do: MacOS has /usr/bin/true, not /bin/true. 2010-12-14 02:47:51 -08:00
Avery Pennarun
d21e6612e2 Answer a bunch more hopefully-FAQs. 2010-12-12 04:30:43 -08:00
Avery Pennarun
14456d5892 Generally clean up the README. 2010-12-12 03:50:56 -08:00
Avery Pennarun
f62176f809 README: explain stdout redirection and the meanings of $1,$2,$3.
Luke reported some trouble figuring these out, what with their being totally
undocumented.
2010-11-20 23:30:59 -08:00
Avery Pennarun
eae3e7cdef Add t/example, a basic example build environment suitable for a tutorial. 2010-11-18 22:48:46 -08:00
Avery Pennarun
abbde40a4f Add README.md and LICENSE.
LGPLv2, by the way.
2010-11-17 00:53:58 -08:00