2024-09-29 21:10:53 -07:00
|
|
|
{ config, pkgs, user, lib, ... }:
|
|
|
|
|
2024-10-26 19:26:44 -07:00
|
|
|
let cfg = config.modules.programs.borg;
|
2024-09-29 21:10:53 -07:00
|
|
|
in {
|
2024-10-26 19:26:44 -07:00
|
|
|
options.modules.programs.borg.enable = lib.mkEnableOption "borg";
|
2024-09-29 21:10:53 -07:00
|
|
|
config = lib.mkIf cfg.enable {
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
borgbackup # Deduplicating backup program
|
2024-12-05 12:41:02 -08:00
|
|
|
tree # Command to produce a depth indented directory listing
|
2024-09-29 21:10:53 -07:00
|
|
|
(pkgs.writeScriptBin "stop-docker-containers" ''
|
|
|
|
#!/bin/sh
|
|
|
|
[ -e /tmp/docker_images ] && rm /tmp/docker_images
|
|
|
|
images=$(docker ps -a -q)
|
|
|
|
echo "$images" > /tmp/docker_images
|
|
|
|
docker stop $images
|
|
|
|
'')
|
|
|
|
(pkgs.writeScriptBin "restore-docker-containers" ''
|
|
|
|
#!/bin/sh
|
|
|
|
[ ! -e /tmp/docker_images ] && exit 0
|
|
|
|
docker start $(cat /tmp/docker_images)
|
|
|
|
rm /tmp/docker_images
|
|
|
|
'')
|
|
|
|
];
|
2024-10-26 19:26:44 -07:00
|
|
|
services.borgmatic.enable = true;
|
2024-09-29 21:10:53 -07:00
|
|
|
};
|
|
|
|
}
|