summaryrefslogtreecommitdiff
path: root/abdul-home/home-config.scm
blob: 8f46e84220be490ed660acb4977c7097dd13a42c (about) (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
76
77
78
79
80
81
82
83
84
(use-modules ((gnu home) #:select (home-environment))
             ((gnu home services) #:select
              (home-activation-service-type home-files-service-type service
               service-extension service-type))
             ((gnu home services shells) #:select
              (home-bash-configuration home-bash-service-type))
             ((gnu home services shepherd) #:select
              (home-shepherd-service-type shepherd-service))
             ((gnu packages messaging) #:select (matterbridge))
             ((gnu packages minetest) #:select (minetest-server))
             ((gnu system shadow) #:select (%default-dotguile))
             ((guix gexp) #:select (file-append gexp local-file plain-file)))

(define home-matterbridge-services
  (const
    (list (shepherd-service
           (provision '(mattermost))
           (modules '((shepherd support)))      ;for '%user-log-dir'
           (start #~(make-forkexec-constructor
                     '(#$(file-append matterbridge "/bin/matterbridge")
                       "--conf"
                       #$(local-file "config.toml"))
                     #:log-file (string-append %user-log-dir
                                               "/matterbridge.log")))
           (stop #~(make-kill-destructor))
           (documentation "Start local matterbridge.")))))

(define home-matterbridge-service-type
  (service-type
   (name 'home-matterbridge)
   (extensions
    (list (service-extension home-shepherd-service-type
                             home-matterbridge-services)))
   (description "Bridge messaging platforms using matterbridge.")
   (default-value #f)))

(define home-minetest-services
  (const
    (list (shepherd-service
           (provision '(minetest))
           (modules '((shepherd support)))      ;for '%user-log-dir'
           (start #~(make-forkexec-constructor
                     '(#$(file-append minetest-server "/bin/minetestserver")
                       "--gameid" "minetest"
                       "--config" #$(local-file "abdultest.conf"))
                     #:environment-variables
                     (cons
                      (format #f "MINETEST_SUBGAME_PATH=~a/share/minetest/games"
                              #$(@@ (gnu packages minetest) minetest-data))
                      (default-environment-variables))
                     #:log-file (string-append %user-log-dir
                                               "/minetest.log")))
           (stop #~(make-kill-destructor))
           (documentation "Start Minetest block game like Minecraft.")))))

(define home-minetest-activation
  (const #~(mkdir-p "~/.local/minetest/abdultest")))

(define home-minetest-service-type
  (service-type
   (name 'home-minetest)
   (extensions
    (list (service-extension home-shepherd-service-type
                             home-minetest-services)
          (service-extension home-activation-service-type
                             home-minetest-activation)))
   (description "Minetest block game like Minecraft.")
   (default-value #f)))

(home-environment
 (services
  (list
   (service home-bash-service-type
            (home-bash-configuration
             (bash-profile (list (plain-file
                                  "bash_ps1"
                                  "export PS1=\"\n↓← $PS1\n→ \"")))))

   (service home-files-service-type
            `((".guile" ,%default-dotguile)))

   ;;(service home-matterbridge-service-type)

   (service home-minetest-service-type))))