blob: 72be6fc8b091adeef0c81a3912d5915a93267b82 (
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
(define-module (jd utils)
#:use-module (gnu system)
#:use-module (ice-9 match)
#:export (jd-search-patches
current-operating-system
current-home))
(define primitive-host-operating-system
"/etc/config.scm")
(define-macro (define-combine-operating-systems name fields)
`(define (,name os-to-inherit-from os)
(operating-system
(inherit os-to-inherit-from)
,@(map (lambda (field)
`(,field
(,(string->symbol
(string-append
"operating-system-"
(symbol->string field)))
os)))
fields))))
(define-combine-operating-systems combine-install-dest-informations
(bootloader mapped-devices file-systems))
(define (make-reconfigureable-os os)
(combine-install-dest-informations
os
(load primitive-host-operating-system)))
(define (current-operating-system)
(make-reconfigureable-os
(module-ref
(resolve-module
`(jd desktops ,(string->symbol (gethostname))))
'system)))
(define (current-home)
(module-ref
(resolve-module
`(jd desktops ,(string->symbol (gethostname))))
'home))
;; This code is copied and modified from (gnu packages) module.
(define (make-custom-load-path dir-path)
(make-parameter
(map (lambda (directory)
(let ((custom-dir (string-append directory dir-path)))
(if (and (file-exists? custom-dir)
(file-is-directory? custom-dir))
custom-dir
directory)))
%load-path)))
(define (make-custom-searcher load-path)
(lambda (file-name)
(or (search-path (load-path) file-name)
(raise (string-append file-name
": not found")))))
(define %jd-patch-path (make-custom-load-path "/jd/packages/patches"))
(define %jd-dot-files-path (make-custom-load-path "/jd/home/services/dotfiles"))
(define (jd-search-patch file-name)
"Search the patch FILE-NAME. Raise an error if not found."
(or (search-path (%jd-patch-path) file-name)
(raise (string-append file-name
": patch not found"))))
(define-syntax-rule (jd-search-patches file-name ...)
"Return the list of absolute file names corresponding to each
FILE-NAME found in %JD-PATCH-PATH."
(list (jd-search-patch file-name) ...))
|