summaryrefslogtreecommitdiff
path: root/deployment
diff options
context:
space:
mode:
Diffstat (limited to 'deployment')
-rw-r--r--deployment/channels.scm50
-rw-r--r--deployment/services/admin.scm41
2 files changed, 91 insertions, 0 deletions
diff --git a/deployment/channels.scm b/deployment/channels.scm
new file mode 100644
index 0000000..fe20a4d
--- /dev/null
+++ b/deployment/channels.scm
@@ -0,0 +1,50 @@
+;;; SPDX-License-Identifier: GPL-3.0-or-later
+;;; SPDX-FileCopyrightText: 2026 Marek Paśnikowski <marek@marekpasnikowski.pl>
+
+;;; COPYRIGHT NOTICE
+;;;
+;;; Copyright 2026, Marek Paśnikowski <marek@marekpasnikowski.pl>
+
+;;; LICENSE NOTICE
+;;;
+;;; This library 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 of the License, or (at your option) any later version.
+;;;
+;;; This library 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 library.
+;;; If not, see <https://www.gnu.org/licenses/>.
+
+(define-module (deployment channels)
+ #:export (guix-with-channels
+ master-channels
+ test-channels)
+ #:use-module (gnu packages package-management)
+ #:use-module (guix gexp)
+ #:use-module (sovereign channels))
+
+(define master-channels
+ (list (default-guix-channel "master")
+ (deployment-channel "master")
+ (mnt-reform-nonguix "personal")
+ (nonguix-channel "master")
+ (rde-channel "master")
+ (sovereign-channel "master")))
+
+(define test-channels
+ (list (default-guix-channel "test")
+ (deployment-channel "test")
+ (mnt-reform-nonguix "personal")
+ (nonguix-channel "test")
+ (rde-channel "master")
+ (sovereign-channel "test")))
+
+(define (guix-with-channels channels)
+ (file-append (guix-for-channels channels) ; package output
+ "/bin/guix" ; relative path to the executable
+ " ")) ; blank required by Bash to parse the next alias
+
+;;; EOF
diff --git a/deployment/services/admin.scm b/deployment/services/admin.scm
new file mode 100644
index 0000000..24103ef
--- /dev/null
+++ b/deployment/services/admin.scm
@@ -0,0 +1,41 @@
+;;; SPDX-License-Identifier: GPL-3.0-or-later
+;;; SPDX-FileCopyrightText: 2026 Marek Paśnikowski <marek@marekpasnikowski.pl>
+
+;;; COPYRIGHT NOTICE
+;;;
+;;; Copyright 2026, Marek Paśnikowski <marek@marekpasnikowski.pl>
+
+;;; LICENSE NOTICE
+;;;
+;;; This library 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 of the License, or (at your option) any later version.
+;;;
+;;; This library 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 library.
+;;; If not, see <https://www.gnu.org/licenses/>.
+
+(define-module (deployment services admin)
+ #:export (update-commands)
+ #:use-module (deployment channels)
+ #:use-module (gnu home services shells)
+ #:use-module (gnu services))
+
+(define update-commands
+ (simple-service
+ 'update-commands
+ home-bash-service-type
+ (home-bash-extension
+ (aliases
+ `(("collect-garbage" . "gc -d 7d ")
+ ("delete-generations" . "system delete-generations 7d ")
+ ("guix" . ,(guix-with-channels master-channels))
+ ("guix-test" . ,(guix-with-channels test-channels))
+ ("pull" . " pull --fallback ")
+ ("pull-down" . "pull --allow-downgrades --disable-authentication --fallback ")
+ ("reconfigure" . "system reconfigure -e \"(@ (deployment system) $HOSTNAME)\" --fallback ")
+ ("reconfigure-down" . "system reconfigure --allow-downgrades -e \"(@ (deployment system) $HOSTNAME)\" --fallback ")
+ ("sudo" . "sudo "))))))