universe/modules/functionality/ensure.nix
Infinidoge 911d8538fa feat(ensure): create ensure module
This module serves to ensure specific directories exist, however in the
future it could be used for other things that need to be 'ensured'.
2023-03-30 12:29:47 -04:00

21 lines
589 B
Nix

{ config, lib, pkgs, ... }:
with lib;
with lib.hlissner;
let
cfg = config.services.ensure;
in
{
options.services.ensure = with types; {
enable = mkBoolOpt true;
directories = mkOpt (listOf string) [ ];
};
config.systemd.services = {
"ensure-directories" = mkIf (cfg.enable && (length cfg.directories > 0)) {
description = "Ensures certain directories exist (${concatStringsSep "," cfg.directories})";
wantedBy = [ "multi-user.target" ];
serviceConfig.Type = "oneshot";
script = "mkdir -p ${concatStringsSep " " cfg.directories}";
};
};
}