- The idea would be to allow running specific commands from SUID
binaries when unpriviledged users should be able to run them. Such
commands include getting services status, which need root
priviledges to be implemented but shouldn’t be required by users.
- Because the repository now builds several binaries, src/main.cr is
now src/service.cr and a WIP src/status.cr has been added.
- The `status` binary will likely be installed in libexec in the
future, with the SUID bit set.
- Environments can have checks, that are run before the service’s
checks.
- Directories can now be checked as well as files.
- Failing checks now stop the start process with a Service::Exception.
- Some variable substitution is done in check commands and tests.
- Some environment variables related to the environment to run the
service in are also exported.
- `start` and `stop` now take service ids in parameter and can take
multiple of them.
- Errors are displayed properly (instead of “index out of bounds” or
“nil assertion failed”) when invalid ids are provided on the CLI for
`start` and `stop`.
- Were tested for `start` and seem to work fine with them.
- `stop` still ignores them compteley at the moment. We’ll need to
remember what has been started as a dependency and what has not to
make `stop` work with reverse-dependency-trees.