Update nix flake

This commit is contained in:
2025-01-07 17:33:23 +03:00
parent ee44aaceab
commit 83202087a5

View File

@@ -23,15 +23,83 @@
src = ./.; src = ./.;
vendorHash = "sha256-dj11SRRoB8ZbkcQs75HPI0DpW4c5jzY0N8MD1wKpw+4="; vendorHash = "sha256-dj11SRRoB8ZbkcQs75HPI0DpW4c5jzY0N8MD1wKpw+4=";
}; };
}); }
);
nixosModules.photocatalog = { config, lib, pkgs, ... }: { nixosModules.photocatalog = { config, lib, pkgs, ... }: {
options.photocatalog = { options.photocatalog = {
enable = lib.mkEnableOption "Enable photocatalog"; enable = lib.mkEnableOption "Enable photocatalog";
syncs = mkOption {
default = {};
description = ''
Organization paths with its own params.
'';
example = {
};
type = types.attrsOf (types.submodule ({ name, ... }: {
freeformType = settingsFormat.type;
options = {
source = mkOption {
type = types.str;
default = name;
description = ''
Source folder path.
'';
};
target = mkOption {
type = types.str;
description = ''
Target folder path.
'';
};
overwrite = mkOption {
type = types.bool;
default = false;
description = ''
Overwrite files, existing in target.
'';
};
watch = mkOption {
type = types.bool;
default = true;
description = ''
Watch for new files in source path.
'';
};
skipFullSync = mkOption {
type = types.bool;
default = false;
description = ''
Do not make full sync.
'';
};
};
}));
};
}; };
config = lib.mkIf config.photocatalog.enable { config = lib.mkIf config.photocatalog.enable {
environment.systemPackages = [ self.packages.${pkgs.system}.photocatalog ]; environment.systemPackages = [ self.packages.${pkgs.system}.photocatalog ];
systemd.services = lib.genAttrs config.photocatalog (sync:
{
${sync.name} = {
name = "photocatalog_${sync.name}";
after = [ "local-fs.target" ];
path = [
self.packages.${pkgs.system}.photocatalog
];
preStart = lib.mkIf (!sync.skipFullSync) [
"mkdir -p ${sync.target}"
"photocatalog -source ${sync.source} -target ${sync.target}"
];
script = [
"photocatalog -source ${sync.source} -target ${sync.target} -skip-full-sync -watch"
];
};
}
);
}; };
}; };