mirror of https://codeberg.org/hako/Rosenthal.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
(define-module (rosenthal services file-systems) |
|
#:use-module (guix gexp) |
|
#:use-module (gnu packages backup) |
|
#:use-module (gnu services) |
|
#:use-module (gnu services configuration) |
|
#:use-module (gnu services mcron) |
|
#:export (btrbk-service-type |
|
btrbk-configuration)) |
|
|
|
|
|
;; |
|
;; Btrbk |
|
;; |
|
|
|
|
|
(define-configuration btrbk-configuration |
|
(btrbk |
|
(file-like btrbk) |
|
"@code{btrbk} package to use.") |
|
(config-file |
|
(file-like (plain-file "empty" "")) |
|
"File-like object for btrbk configuration, see also @code{btrbk.conf(5)}.") |
|
(no-serialization)) |
|
|
|
(define (btrbk-etc-service config) |
|
`(("btrbk/btrbk.conf" ,(btrbk-configuration-config-file config)))) |
|
|
|
(define (btrbk-mcron-jobs config) |
|
(list #~(job next-hour-from |
|
#$(file-append (btrbk-configuration-btrbk config) |
|
"/bin/btrbk run --quiet")))) |
|
|
|
(define btrbk-service-type |
|
(service-type |
|
(name 'btrbk) |
|
(extensions |
|
(list (service-extension etc-service-type |
|
btrbk-etc-service) |
|
(service-extension mcron-service-type |
|
btrbk-mcron-jobs))) |
|
(default-value (btrbk-configuration)) |
|
(description "Configure and run btrbk hourly.")))
|
|
|