caton...@gmail.com writes:
> Il giorno mer, 15/06/2022 alle 01.52 +0700, Blake Shaw ha scritto: >> >> I found the documentation to be a bit confusing (understandably, as >> its new), but once the workflow snapped together its been amazing to >> see how easy it is to create new services. > > This is something I'm specifically interested in > > In fact, I wrote this toot that got several boosts and likes but NO > answer > https://floss.social/web/@abbienormal/108378060174601402 I don’t know Odoo, but the general process is this: - look up the relevant documentation of your application to figure out what commands must be executed. Take note of any way to pass a configuration file. - copy an existing shepherd service. Maybe start with gnu/services/audio.scm, because it’s pretty simple while not completely trivial. - adjust the commands and names. In gnu/services/audio.scm you see the definition of mpd-service-type, which is a *system* service that 1) adds a user account, 2) does some one-shot preparation work, and 3) registers the mpd-shepherd-service. mpd-shepherd-service is a procedure returning a shepherd service. The service has a start and stop command. Adjust this for your service. mpd-shepherd-service refers to its argument “config”, which is supposed to be a Scheme configuration value. It’s just a record defined higher up as <mpd-configuration>. mpd-config->file turns that Scheme value into a string that can live in a file as the mpd configuration file. This is pretty much all there is to it. Some services are simpler and don’t need any one-shot setup, nor do they need system user accounts, so they would just boil down to a shepherd service definition. -- Ricardo