diff options
-rw-r--r-- | src/package.lisp | 2 | ||||
-rw-r--r-- | src/property/apt.lisp | 24 |
2 files changed, 21 insertions, 5 deletions
diff --git a/src/package.lisp b/src/package.lisp index 563c752..212b809 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -365,6 +365,7 @@ (#:os #:consfigurator.property.os) (#:service #:consfigurator.property.service)) (:export #:installed + #:installed-minimally #:removed #:reconfigured #:service-installed-running @@ -380,6 +381,7 @@ #:uses-parent-proxy #:uses-local-cacher #:standard-sources.list + #:additional-sources #:cache-cleaned #:all-installed-p #:none-installed-p)) diff --git a/src/property/apt.lisp b/src/property/apt.lisp index c1e57ee..cb0e8cc 100644 --- a/src/property/apt.lisp +++ b/src/property/apt.lisp @@ -43,14 +43,21 @@ "Ensure all of the apt packages PACKAGES are installed." (:desc #?"apt installed @{packages}") (:preprocess (flatten packages)) - (:hostattrs - (declare (ignore packages)) - (os:required 'os:debianlike)) - (:check - (all-installed-p packages)) + (:hostattrs (os:required 'os:debianlike)) + (:check (all-installed-p packages)) (:apply (with-maybe-update (apt-get :inform "-y" "install" packages)))) +(defprop installed-minimally :posix (&rest packages) + "Ensure all of the apt packages PACKAGES are installed, without recommends." + (:desc #?"apt installed @{packages}") + (:preprocess (flatten packages)) + (:hostattrs (os:required 'os:debianlike)) + (:check (all-installed-p packages)) + (:apply + (with-maybe-update + (apt-get :inform "-y" "--no-install-recommends" "install" packages)))) + (defprop removed :posix (&rest packages) "Ensure all of the apt packages PACKAGES are removed." (:desc #?"apt removed @{packages}") @@ -204,6 +211,13 @@ only upgrade Debian stable." (mapcan (lambda (l) (list #?"deb @{l}" #?"deb-src @{l}")) (nconc archive security)))) +(defprop additional-sources :posix (basename content) + "Add additional apt source lines to a file in /etc/apt/sources.list.d named +after BASENAME. CONTENT is as the content argument to FILE:HAS-CONTENT." + (on-change + (file:has-content #?"/etc/apt/sources.list.d/${basename}.list" content) + (updated))) + (defprop cache-cleaned :posix () "Empty apt's cache to recover disk space." (:desc "apt cache cleaned") |