diff options
author | Reily Siegel <mail@reilysiegel.com> | 2022-06-29 17:05:26 -0400 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-07-12 01:17:46 +0200 |
commit | 8d922504b22b81f99bf2dcbb9f15498ad513040a (patch) | |
tree | bb452ef1c3eb491fc0503b6c742541e8034b48e1 /gnu/home/services | |
parent | 03bc18dfcf3cea76be904b0dfbcdf3943ec2fe79 (diff) |
gnu: home: Add Guix channels service.
* gnu/home/services/guix.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add guix.scm.
* doc/guix.texi: Add documentation for home-channels-service.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/home/services')
-rw-r--r-- | gnu/home/services/guix.scm | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gnu/home/services/guix.scm b/gnu/home/services/guix.scm new file mode 100644 index 0000000000..819b20b6c9 --- /dev/null +++ b/gnu/home/services/guix.scm @@ -0,0 +1,44 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Reily Siegel <mail@reilysiegel.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix 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. +;;; +;;; GNU Guix 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 GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu home services guix) + #:use-module (gnu home services) + #:use-module (guix channels) + #:use-module (guix gexp) + #:use-module (ice-9 pretty-print) + #:use-module (srfi srfi-1) + #:export (home-channels-service-type)) + +(define (channels-xdg-files channels) + `(("guix/channels.scm" + ,(plain-file + "channels.scm" + (call-with-output-string + (lambda (port) + (pretty-print (cons 'list (map channel->code channels)) port))))))) + +(define home-channels-service-type + (service-type + (name 'home-channels) + (default-value %default-channels) + (compose concatenate) + (extend append) + (extensions + (list (service-extension home-xdg-configuration-files-service-type + channels-xdg-files))) + (description "Manages the per-user Guix channels specification."))) |