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'.
1.4 KiB
Prerequisites
Currently, this version of redo requires python2.7 and the python2.7 sqlite3 module.
Optional, but recommended, is the
setproctitle module, which makes your
ps output prettier.
In modern versions of Debian, sqlite3 is already part of the python2.7 package. You can install the prerequisites like this:
sudo apt-get install python2.7 python-setproctitle
(If you have install instructions for other OSes, please add them here :))
Clone, compile, and test redo
You can run redo without installing it, like this:
git clone https://github.com/apenwarr/redo
cd redo
./redo -j10 test
If the tests pass, you can either add $PWD/redo to your PATH, or install redo on your system. To install for all users, put it in /usr/local:
PREFIX=/usr/local sudo ./redo install
Or to install it just for yourself (without needing root access), put it in your home directory:
PREFIX=$HOME ./redo install
Pre-compiled packages
MacOS
redo is available from the Homebrew project:
brew install redo
Linux
Various linux distributions include redo under different names. Most of the packages are unfortunately obsolete and don't contain the most recent bug fixes. At this time (late 2018), we recommend using the latest tagged version from github.