diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2021-06-22 12:50:43 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2021-06-22 12:50:43 -0700 |
commit | b5f01bc4d9cb5e197df36e84e2b88eb0ac817f9e (patch) | |
tree | 555b5b1595dbe01871cd1cfc801f17abd7987f7f | |
parent | 580b01a5693f6bd3d0dd42f11a94e96826b84c1a (diff) | |
download | consfigurator-b5f01bc4d9cb5e197df36e84e2b88eb0ac817f9e.tar.gz |
add some very simple systemd service properties
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
-rw-r--r-- | consfigurator.asd | 1 | ||||
-rw-r--r-- | src/package.lisp | 8 | ||||
-rw-r--r-- | src/property/systemd.lisp | 46 |
3 files changed, 55 insertions, 0 deletions
diff --git a/consfigurator.asd b/consfigurator.asd index 830c65b..32c55a3 100644 --- a/consfigurator.asd +++ b/consfigurator.asd @@ -59,6 +59,7 @@ (:file "src/property/postfix") (:file "src/property/cron") (:file "src/property/apache") + (:file "src/property/systemd") (:file "src/connection/shell-wrap") (:file "src/connection/fork") (:file "src/connection/rehome") diff --git a/src/package.lisp b/src/package.lisp index 080a7af..22e5b02 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -699,6 +699,14 @@ #:mod-enabled #:conf-enabled)) +(defpackage :consfigurator.property.systemd + (:use #:cl #:consfigurator) + (:export #:started + #:stopped + #:enabled + #:disabled + #:masked)) + (defpackage :consfigurator.connection.local (:use #:cl #:consfigurator #:alexandria) (:export #:local-connection)) diff --git a/src/property/systemd.lisp b/src/property/systemd.lisp new file mode 100644 index 0000000..c417df6 --- /dev/null +++ b/src/property/systemd.lisp @@ -0,0 +1,46 @@ +;;; Consfigurator -- Lisp declarative configuration management system + +;;; Copyright (C) 2021 Sean Whitton <spwhitton@spwhitton.name> + +;;; This file is free software; you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3, or (at your option) +;;; any later version. + +;;; This file is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. + +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see <http://www.gnu.org/licenses/>. + +(in-package :consfigurator.property.systemd) +(named-readtables:in-readtable :consfigurator) + +(defprop started :posix (service) + (:desc #?"systemd service ${service} started") + (:apply (mrun "systemctl" "start" service) + :no-change)) + +(defprop stopped :posix (service) + (:desc #?"systemd service ${service} stopped") + (:apply (mrun "systemctl" "stop" service) + :no-change)) + +(defprop enabled :posix (service) + (:desc #?"systemd service ${service} enabled") + (:apply (mrun "systemctl" "enable" service) + :no-change)) + +(defprop disabled :posix (service) + (:desc #?"systemd service ${service} disabled") + (:apply (mrun "systemctl" "disable" service) + :no-change)) + +(defprop masked :posix (service) + (:desc #?"systemd service ${service} masked") + (:apply (mrun "systemctl" "mask" service) + :no-change) + (:unapply (mrun "systemctl" "unmask" service) + :no-change)) |