Commit Graph

35 Commits

Author SHA1 Message Date
794ffe16fa Bugfixes related to a dependency’s API changes. 2019-10-19 18:24:38 +02:00
ca013e37d8 More stuff gets installed through make install. 2019-10-19 18:17:50 +02:00
3c20783f91 Updated dependencies and code for new Crystal version. 2019-10-19 18:08:34 +02:00
1c87371196 shard.yml: dependencies update 2019-10-19 18:04:40 +02:00
c042a8eb84 CACHE_DIRECTORY in config.cr. 2019-10-19 18:01:29 +02:00
75e500adcf SpecFileParser update. 2019-08-15 17:29:52 +02:00
4eefe465f4 Providers are auto-guessed when adding services. 2019-08-10 22:29:11 +02:00
9e7921a803 service add can be specified token providers. 2019-08-10 22:02:11 +02:00
efe2c0e964 Complete removal of YAML files. 2019-08-10 17:16:24 +02:00
3769303ad5 WIP support for .spec service files. 2019-08-08 17:12:23 +02:00
2e57922ffd Example (and test) service files added. 2019-07-08 02:59:01 +02:00
5dd27e1101 Priviledges management.
- `service status` does not require priviledges anymore… if the
    `status` binary is owned by root and has the setuid and setguid
    flags. Hopefully, that binary only checks that a service’s process
    exists.
2019-06-10 14:32:30 +02:00
fbeece112a Bugfix.
Bug was revealed through manual integration testing. Checks used to be
ran as unpriviledged user instead of the actual service command (duh~).
2019-06-10 00:39:15 +02:00
15aa28ea86 errno errors reported as such. 2019-06-10 00:38:54 +02:00
38329bb15e project.zsh added and generated configuration. 2019-06-09 23:35:34 +02:00
5eb0849abd Project organisation for WIP separate binaries.
- 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.
2019-06-09 18:08:59 +02:00
8a6829d803 Running daemons as a different user is now possible. 2019-06-09 17:14:18 +02:00
61c9f33f89 Sources split. 2019-06-09 16:59:05 +02:00
21f8d2d7d2 Service definitions can export environment variables. 2019-06-09 15:20:36 +02:00
5b864dcb58 evaluate()’s substitutions are now global. 2019-06-09 15:09:30 +02:00
73abf06a65 Improved checks.
- 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.
2019-06-09 14:54:34 +02:00
b17a258bc8 Improved error management on environment reading. 2019-06-09 13:51:29 +02:00
52e4bce548 “Native” environment type renamed to “Prefix”. 2019-06-09 13:50:49 +02:00
0378d43224 Pre-start checks/scripts can be defined. 2019-06-09 02:22:58 +02:00
5aadf3c7ed Service#summary cleaned a bit.
Not provided tokens will also be printed in red.
2019-06-08 19:24:52 +02:00
9a93937176 Grooming.
- Service#running?(pid_dir) added.
  - No attempt to stop services not running is being made by `stop`
    anymore.
2019-06-08 19:12:23 +02:00
e331828c8b Reverse dependency tree.
- `stop` uses it to stop services that depend upon something that has
    to be stopped.
2019-06-08 19:01:31 +02:00
dddf285046 UI update.
- `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`.
2019-06-08 18:46:53 +02:00
3e8a1d2ab2 Grooming related to side-effects directories. 2019-06-08 18:25:08 +02:00
f858a9aa11 Dependency trees.
- 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.
2019-06-08 18:16:23 +02:00
36668ed148 Application name in help messages. 2019-06-08 03:06:26 +02:00
69ecadaefd TODOs and --help. 2019-06-08 03:04:11 +02:00
efde03eb79 Internal improvements related to PID files. 2019-06-08 02:50:38 +02:00
c77d931493 shard.yml and test .empty files added. 2019-06-08 02:33:14 +02:00
2dd3fe7dd6 Initial commit. 2019-06-08 02:21:31 +02:00