summaryrefslogtreecommitdiffstats
path: root/src/jd/features/nextcloud.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/jd/features/nextcloud.scm')
-rw-r--r--src/jd/features/nextcloud.scm50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/jd/features/nextcloud.scm b/src/jd/features/nextcloud.scm
new file mode 100644
index 0000000..ff3c9fb
--- /dev/null
+++ b/src/jd/features/nextcloud.scm
@@ -0,0 +1,50 @@
1(define-module (jd features nextcloud)
2 #:use-module (rde features)
3 #:use-module (rde predicates)
4
5 #:use-module (gnu packages)
6 #:use-module (gnu packages polkit)
7 #:use-module (gnu services)
8 #:use-module (gnu services configuration)
9 #:use-module (gnu home services)
10 #:use-module (gnu home services shepherd)
11 #:use-module (guix gexp)
12 #:export (feature-nextcloud))
13
14(define* (feature-nextcloud
15 #:key
16 (nextcloud-client (@ (gnu packages sync) nextcloud-client))
17 (gnome-keyring (@ (gnu packages gnome) gnome-keyring))
18 (polkit? #t))
19 (define f-name 'nextcloud)
20
21 (define (get-home-services config)
22 (list
23 (simple-service
24 'add-nextcloud-home-package
25 home-profile-service-type
26 (append
27 (if polkit? (list gnome-keyring) '())
28 (list nextcloud-client)))
29
30 (simple-service
31 'nextcloud-shepherd-service
32 home-shepherd-service-type
33 (list
34 (shepherd-service
35 (provision `(nextcloud))
36 (auto-start? #t)
37 (stop #~(make-kill-destructor))
38 (start #~(make-forkexec-constructor
39 (list #$(program-file
40 "nextcloud"
41 #~(begin
42 (setenv "QT_QPA_PLATFORM" "wayland-egl;xcb")
43 (apply system*
44 (list
45 #$(file-append (@ (gnu packages sync) nextcloud-client) "/bin/nextcloud")))))))))))))
46
47 (feature
48 (name f-name)
49 (values `((,f-name . #t)))
50 (home-services-getter get-home-services)))