Commit graph

11 commits

Author SHA1 Message Date
3b7757b1d9 chore: add support for build automation (#5)
All checks were successful
Run tests and linters / test (push) Successful in 42s
Run tests and linters / build (push) Successful in 41s
Run tests and linters / lint (push) Successful in 1m18s
This PR seeks to solve #2.

It adds a Makefile that can build, test, lint and package the code and the Forgejo workflows needed to automate the build. In addition, it resolves various issues highlighted by the linter.

Reviewed-on: #5
Co-authored-by: Emmanuel BENOÎT <tseeker@nocternity.net>
Co-committed-by: Emmanuel BENOÎT <tseeker@nocternity.net>
2024-07-26 14:07:46 +02:00
be6198dbed Client mode
* Refactored so that all server code is in a single file
  * Added missing CLI option to send reload/quit commands to the server
  * Implemented client mode
2021-12-04 18:31:19 +01:00
cd295e51ba Ability to run in standalone mode
* In addition to the server mode, it is now possible to run the
    program in standalone mode. In that mode, the updates selector and
    force flag will be read from the command line, the updates will be
    executed immediately, and the program will exit.
  * Client mode ready to be implemented
2021-12-04 17:47:21 +01:00
8c33db2cc5 Refactoring - UNIX server loop 2021-12-04 12:20:02 +01:00
0d001985fe Refactoring - Renamed CLI flags structure 2021-12-04 10:51:03 +01:00
658ee30bc6 Server socket
* The UNIX socket will be listened on for control messages
  * A message containing a single 'Q' will cause it to exit
  * A message containing a single 'R' will cause a configuration reload.
    If the new configuration is incorrect, the old configuration will be
    kept. A new socket will be opened if the path has changed (failure
    when doing so will restore the previous configuration as well).
  * A message starting with 'U' requests an update. The next character
    may be '!' to force updates or anything else to update only as
    needed. The rest of the string is the selector: either a DN or '*'.
  * The selector is ignored in this commit; all certificates are
    re-examined.
2021-11-06 17:12:08 +01:00
50bff6a5cb Command execution after certificate replacement 2021-11-06 10:47:10 +01:00
a2606b5b89 Minor refactoring
* Made some LDAP methods public
  * Made the LDAP connection's config field private
2021-11-06 10:05:45 +01:00
f95da0e3e8 Write certificate file and set privileges 2021-11-05 17:16:44 +01:00
a651e408ed File builder
* Code that will build a certificate file from its configuration
  * Run it on all configured files from main
2021-11-05 14:24:04 +01:00
610cbf28f8 Configuration file reading
* An example configuration file has been added.
  * The data structure that corresponds to the configuration has been
    defined, and functions to load it have been added.
  * Logging using logrus and command line arguments that configure
    logging and set the configuration file's path have been added.
  * Opening the UNIX socket has been implemented.
2021-10-30 17:07:06 +02:00