[NEWS/ANNOUNCE] Supervision Scripts Framework

From: toki clover <tokiclover_at_gmail.com>
Date: Thu, 5 Mar 2015 11:03:47 +0100

Hello fellow Supervision Users,

I was busy lately working on Supervision-Scripts[1] Framework which grew
up to be quite complete and efficient with a very simple API.

HISTORY:

First, I only started working on this after I discovered Avery Payne's
lately
on January when I was considering switching to Runit as an init system to
replace SysVinit. So, I took my time first... and then quickly transformed
Avery's plan into a simple and clean implementation with fewer directories
and files (run/finish). And finaly, I took another directory with merging
bits
together aiming to get fewer files and comlexity by using a shell and OpenRC
for system boot/halt.

Gosh, whith a clean and simple implementation of Avery's plan,--meaning
using a common {run,finish} for service and log (with an extra script for
envdir
support), a _single_ configuration file (OPTIONS) file for each service and
a
_single_ directory for those supervision scripts,--the project was ~600
lines with
lots of extra lines for comments.

This is nothing compared to the pain of writing or copying _ad infinitum_
the
same files over and over again--this a real issue which could have let me
down
and left supervision world altogether!

Second step with merging files together to eliminate code/line redundancy
and
improve the default environment variable to be able to get a working service
directory with {run,finish} symlinks and add documentation,--this step made
it
necessary to have a few helpers (sv/.opt/functions) and suppervision
specific
helpers (sv/.opt/supervision-functions),--bumped the number of lines to
~1500!
Well the current API was apparent with support of functions pre()/post()
that
can be defines in OPTIONS and CGroup support was also added,--well, I had
a few things to do... when I was constantly saying to myself "let's do this
and
be done with it" since r1 release!

Third step... put everything together in an efficient way with a simple &
clean
API which was done lately.--Gosh, I was too busy lately... not to much but
quite
for sure.

MORE INFO: See [1].

Current workeable release is r12 with two fix on master. I decided to go to
integer
version number early bu I could have bumped the version number with major,
minor
and patch like:
* 0.x on the 100th commits which is release r1;
* 0.y on the 144th commits or so which CGroup and persistent env variables
(r4);
* 1.z on the 200th commits or so with a stable and functional API (r12) with
  {run,finish} way before... first merging run{,-log} and {finish{,-log}
and then merging
  everything together to...
* 2.v on the 224th commits with the greatly improved API with
{svc,log}_{run,finish}()
  (a very few lines, not even in dozen!) instead of wasting disk space for
nothing and
  lighten the burden of maintenance.

Cheers!

[1]: https://github.com/tokiclover/supervision-scripts

-- 
Error 404: gentoo user <0123456789> was not found
Received on Thu Mar 05 2015 - 10:03:47 UTC

This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:44:19 UTC