-
Notifications
You must be signed in to change notification settings - Fork 1
/
guix.scm
31 lines (27 loc) · 923 Bytes
/
guix.scm
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
(use-modules
(ice-9 popen)
(ice-9 rdelim)
(guix build utils)
(guix gexp)
(guix git-download)
(guix packages)
(wigust packages dotfiles))
(define %source-dir "/home/oleg/.local/share/chezmoi")
(define (git-output . args)
"Execute 'git ARGS ...' command and return its output without trailing
newspace."
(with-directory-excursion %source-dir
(let* ((port (apply open-pipe* OPEN_READ "git" args))
(output (read-string port)))
(close-pipe port)
(string-trim-right output #\newline))))
(define (current-commit)
(git-output "log" "-n" "1" "--pretty=format:%H"))
(let ((commit (current-commit)))
(package
(inherit dotfiles)
(version (string-append (package-version dotfiles)
"-" (string-take commit 7)))
(source (local-file %source-dir
#:recursive? #t
#:select? (git-predicate %source-dir)))))