aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2022-10-30 19:11:19 -0300
committerEuAndreh <eu@euandre.org>2022-10-30 19:11:19 -0300
commitfd3641e591a5ed98cd0f9e02cb4dc930541dce0f (patch)
treecd1da95713da001c70e70c6ed621046954074002
parentMove dunst to Guix Home from i3 exec on init (diff)
downloaddotfiles-fd3641e591a5ed98cd0f9e02cb4dc930541dce0f.tar.gz
dotfiles-fd3641e591a5ed98cd0f9e02cb4dc930541dce0f.tar.xz
etc/guix/home.scm: Create (home-service ...) to remove duplication
-rw-r--r--etc/guix/home.scm97
1 files changed, 20 insertions, 77 deletions
diff --git a/etc/guix/home.scm b/etc/guix/home.scm
index 05dd465..258ffb3 100644
--- a/etc/guix/home.scm
+++ b/etc/guix/home.scm
@@ -211,89 +211,32 @@
#~(job "30 0 * * *" "cronjob x update AND upgrade")
#~(job "30 0 * * *" "cronjob backup -q cron")))
-(define (clipmenu-shepherd-services _config)
- (list
- (shepherd-service
- (provision '(clipmenu))
- (documentation
- #"-
- Shepherd service that manages clipmenu."#)
- (start
- #~(make-forkexec-constructor
- (list #$(file-append clipmenu "/bin/clipmenud"))))
- (stop #~(make-kill-destructor)))))
-
-(define clipmenu-service-type
+(define (home-service name package bin)
(service-type
- (name 'clipmenu)
- (extensions
- (list
- (service-extension home-shepherd-service-type
- clipmenu-shepherd-services)
- (service-extension home-profile-service-type
- (lambda _ (list clipmenu)))))
- (default-value '())
- (description
- #"-
- Service that runs clipmenu as a daemon under Shepherd.
-
- It has no configuration."#)))
-
-(define (dunst-shepherd-services _config)
- (list
- (shepherd-service
- (provision '(dunst))
- (documentation
- #"-
- Shepherd service that manages dunst."#)
- (start
- #~(make-forkexec-constructor
- (list #$(file-append dunst "/bin/dunst"))))
- (stop #~(make-kill-destructor)))))
-
-(define dunst-service-type
- (service-type
- (name 'dunst)
+ (name name)
(extensions
(list
(service-extension home-shepherd-service-type
- dunst-shepherd-services)
+ (lambda _
+ (list
+ (shepherd-service
+ (provision (list name))
+ (documentation
+ (format #f "Shepherd service that manages ~a." name))
+ (start
+ #~(make-forkexec-constructor
+ (list #$(file-append package bin))))
+ (stop #~(make-kill-destructor))))))
(service-extension home-profile-service-type
- (lambda _ (list dunst)))))
+ (lambda _ (list package)))))
(default-value '())
(description
- #"-
- Service that runs dunst as a daemon under Shepherd.
-
- It has no configuration."#)))
-
-(define (poweralertd-shepherd-services _config)
- (list
- (shepherd-service
- (provision '(poweralertd))
- (documentation
+ (format #f
#"-
- Shepherd service that manages poweralertd."#)
- (start
- #~(make-forkexec-constructor
- (list #$(file-append poweralertd "/bin/poweralertd"))))
- (stop #~(make-kill-destructor)))))
-
-(define poweralertd-service-type
- (service-type
- (name 'poweralertd)
- (extensions
- (list
- (service-extension home-shepherd-service-type
- poweralertd-shepherd-services)
- (service-extension home-profile-service-type
- (lambda _ (list poweralertd)))))
- (default-value '())
- (description
- #"-
- Service that runs poweralertd as a daemon under Shepherd.
+ Service that runs ~a as a daemon under Shepherd.
- It has no configuration."#)))
+ It has no configuration."#
+ name))))
(home-environment
(packages
@@ -596,9 +539,9 @@
"/sh/cronjob.sh"))))))
(services
(list
- (service clipmenu-service-type)
- (service dunst-service-type)
- (service poweralertd-service-type)
+ (service (home-service 'clipmenu clipmenu "/bin/clipmenud"))
+ (service (home-service 'dunst dunst "/bin/dunst"))
+ (service (home-service 'poweralertd poweralertd "/bin/poweralertd"))
(simple-service 'my-shell-profile home-shell-profile-service-type
(list (plain-file "my-profile" ". ~/.usr/etc/sh/rc")))
(service home-mcron-service-type