diff options
Diffstat (limited to 'suweren/update.scm')
-rw-r--r-- | suweren/update.scm | 140 |
1 files changed, 92 insertions, 48 deletions
diff --git a/suweren/update.scm b/suweren/update.scm index 90c60f6..8da35ad 100644 --- a/suweren/update.scm +++ b/suweren/update.scm @@ -1,54 +1,98 @@ (define-module (suweren update) + ;; home-bash-extension + ;; home-bash-service-type #:use-module (gnu home services shells) + + ;; simple-service #:use-module (gnu services)) -(define-public (update-commands system user) - (let* ((and "&& ") - (delete-home-generations "guix home delete-generations 7d ; ") - (delete-roots "sudo guix gc -d 7d ") - (delete-system-generations "sudo guix system delete-generations 7d ; ") - (guile-load-path "GUILE_LOAD_PATH='$HOME/Szablony/distribution:$HOME/Szablony/deployment' ") - (pull-guix "guix pull ") - (reconfigure-home (string-append "guix home reconfigure -e " - "'((@ (users " - user - ") " - user - "-home-environment) \"" - system - "\")' ")) - (reconfigure-system (string-append "sudo guix system reconfigure -e " - "'(@ (systems " - system - " system-configuration) " - system - ")' ")) - - (collect-garbage (string-append delete-home-generations - delete-system-generations - delete-roots)) - (test-home (string-append guile-load-path - reconfigure-home)) - (test-system (string-append guile-load-path - reconfigure-system)) - (update-system (string-append pull-guix - and - reconfigure-system - and - reconfigure-home - and - collect-garbage)) - - (aliases `(("collect-garbage" . ,collect-garbage) - ("pull-guix" . ,pull-guix) - ("reconfigure-home" . ,reconfigure-home) - ("reconfigure-system" . ,reconfigure-system) - ("test-home" . ,test-home) - ("test-system" . ,test-system) - ("update-system" . ,update-system))) - - (value (home-bash-extension (aliases aliases)))) - +;; string +(define and* + " && ") + +;; string +(define delete-garbage + "sudo guix gc -d 7d") + +;; string +(define delete-home-generations + "guix home delete-generations 7d") + +;; string +(define delete-system-generations + "sudo guix system delete-generations 7d") + +;; string +(define guile-load-path + "GUILE_LOAD_PATH='$HOME/Szablony/distribution:$HOME/Szablony/deployment'") + +;; string +(define pull-guix + "guix pull") + +;; string +(define collect-garbage + (string-append delete-home-generations + and* + delete-system-generations + and* + delete-garbage)) + +;; string -> +;; string +(define (system-definition host-name*) + (string-append "'(@ (systems " + host-name* + " system-configuration) " + host-name* + ")'")) + +;; string -> +;; string +(define (reconfigure-system system-definition*) + (string-append "sudo guix system reconfigure -e " + system-definition*)) + +;; string -> +;; string +(define (test-update reconfigure-system*) + (string-append guile-load-path + " " + reconfigure-system*)) + +;; string -> +;; string +(define (update-system reconfigure-system*) + (string-append pull-guix + and* + reconfigure-system* + and* + collect-garbage)) + +;; string -> +;; string -> +;; string -> +;; alist +(define (aliases reconfigure-system* + test-update* + update-system*) + `(("collect-garbage" . ,collect-garbage) + ("pull-guix" . ,pull-guix) + ("reconfigure-system" . ,reconfigure-system*) + ("test-system" . ,test-update*) + ("update-system" . ,update-system*))) + +;; string -> +;; record service +(define-public (update-commands host-name*) + (let* ((system-definition* (system-definition host-name*)) + (reconfigure-system* (reconfigure-system system-definition*)) + (test-update* (test-update reconfigure-system*)) + (update-system* (update-system reconfigure-system*)) + (aliases* (aliases reconfigure-system* + test-update* + update-system*)) + (service-extension* (home-bash-extension (aliases aliases*)))) (simple-service 'update-commands home-bash-service-type - value))) + service-extension*))) |