(define-module (glicid services rc-local) #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (guix) #:use-module (guix records) #:use-module (ice-9 match) #:use-module (gnu packages bash) #:export ( %default-rc-local-conf rc-local-configuration rc-local-configuration? rc-local-service rc-local-service-type %default-rc-multiplelocal-conf rc-multiplelocal-configuration rc-multiplelocal-configuration? rc-multiplelocal-service rc-multiplelocal-service-type )) (define %default-rc-local-conf (plain-file "rc-local" " # Empty file as we do nothing by default ")) (define-record-type* rc-local-configuration make-rc-local-configuration rc-local-configuration? (config-file rc-local-config-file (default %default-rc-local-conf)) (log-file log-file (default "/var/log/rc-local.log"))) (define rc-local-service (match-lambda (($ config-file log-file) (list (shepherd-service (provision '(rc-local)) (documentation "Run rc-local.") (requirement '(user-processes udev)) (respawn? #f) (one-shot? #t) (start #~(make-forkexec-constructor (list #$(file-append bash "/bin/bash") "-l" #$config-file) #:log-file #$log-file )) (stop #~(make-kill-destructor))))))) (define rc-local-service-type (service-type (name 'rc-local) (extensions (list (service-extension shepherd-root-service-type rc-local-service))) (description "Run a script in a rc-local like form"))) (define %default-rc-multiplelocal-conf (plain-file "rc-multiplelocal" " # Empty file as we do nothing by default ")) (define-record-type* rc-multiplelocal-configuration make-rc-multiplelocal-configuration rc-multiplelocal-configuration? (config-file rc-multiplelocal-config-file (default %default-rc-multiplelocal-conf)) (log-file log-file (default "/var/log/rc-multiplelocal.log"))) (define rc-multiplelocal-service (match-lambda (($ config-file log-file) (list (shepherd-service (provision '(rc-multiplelocal)) (documentation "Run rc-multiplelocal.") (requirement '(user-processes udev)) (respawn? #f) (one-shot? #t) (start #~(make-forkexec-constructor (list #$(file-append bash "/bin/bash") "-l" #$config-file) #:log-file #$log-file )) (stop #~(make-kill-destructor))))))) (define rc-multiplelocal-service-type (service-type (name 'rc-multiplelocal) (extensions (list (service-extension shepherd-root-service-type rc-multiplelocal-service))) (description "Run a script in a rc-multiplelocal like form")))