diff options
-rw-r--r-- | src/package.lisp | 3 | ||||
-rw-r--r-- | src/property/apache.lisp | 18 |
2 files changed, 16 insertions, 5 deletions
diff --git a/src/package.lisp b/src/package.lisp index 9e97cc6..6f9bd24 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -708,7 +708,8 @@ (:export #:installed #:reloaded #:mod-enabled - #:conf-enabled)) + #:conf-enabled + #:conf-available)) (defpackage :consfigurator.property.systemd (:use #:cl #:consfigurator) diff --git a/src/property/apache.lisp b/src/property/apache.lisp index f718631..7de7cdd 100644 --- a/src/property/apache.lisp +++ b/src/property/apache.lisp @@ -39,14 +39,24 @@ (on-change (%mod-enabled name) (reloaded))) +(defproplist conf-available :posix (name config) + (:desc #?"Apache conf ${name} available") + (file:exists-with-content + (merge-pathnames (strcat name ".conf") #P"/etc/apache2/conf-available/") + config)) + (defprop %conf-enabled :posix (name) (:hostattrs (os:required 'os:debianlike)) (:check (zerop (mrun :for-exit "a2query" "-q" "-c" name))) (:apply (mrun "a2enconf" "--quiet" name)) (:unapply (mrun "a2disconf" "--quiet" name))) -(defproplist conf-enabled :posix (name) +(defpropspec conf-enabled :posix (name &optional config) (:desc #?"Apache configuration ${name} enabled") - (installed) - (on-change (%conf-enabled name) - (reloaded))) + `(eseqprops + (installed) + (on-change ,(if config + `(eseqprops (conf-available ,name ,config) + (%conf-enabled ,name)) + `(%conf-enabled ,name)) + (reloaded)))) |