aboutsummaryrefslogtreecommitdiffstats
path: root/oni/home/services/lisp.scm
blob: b9b17218ed1a6b7763e8b6f19e5459b700fda6f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
(define-module (oni home services lisp)
  #:use-module (gnu home services)
  #:use-module (gnu packages lisp)
  #:use-module (gnu packages lisp-xyz)
  #:use-module (gnu services configuration)
  #:use-module (guix packages)
  #:use-module (guix gexp)

  #:export (home-sbcl-service-type
            home-sbcl-configuration))

(define-configuration home-sbcl-configuration
  (package
    (package sbcl)
    "Package to use for setting SBCL")
  (linedit-package
   (package sbcl-linedit)
   "Package for setting up linedit"))

(define (add-sbcl-packages config)
  (list (home-sbcl-configuration-package config)
        (home-sbcl-configuration-linedit-package config)))

(define (home-sbcl-config-files config)
  `((".sbclrc"
     ,(local-file "../../../sbcl/sbclrc"))))

(define home-sbcl-service-type
  (service-type (name 'home-sbcl)
                (extensions
                 (list (service-extension
                        home-files-service-type
                        home-sbcl-config-files)
                       (service-extension
                        home-profile-service-type
                        add-sbcl-packages)))
                (default-value (home-sbcl-configuration))
                (description "Configure SBCL")))