added vyosbld options

main
emily 4 months ago
parent 1bab1ada37
commit 34a674872f
Signed by: snaki
GPG Key ID: F6F4C66207FCF995

@ -25,9 +25,70 @@
pname = "kyouma-www";
version = self.shortRev or (toString self.lastModifiedDate);
src = ./.;
buildPhase = ''mkdir src/assets/media; ln -s ${packages.vid}/* src/assets/media/'';
buildPhase = '''';
installPhase = ''cp -r src $out'';
};
packages.default = packages.kyouma-www;
nixosModules.default =
{ config, options, pkgs, ... }:
let
cfg = config.services.vyosBld;
buildFlags = (attrsets.mapAttrsToList (flag: opt: "--" + flag + " " + opt) cfg.buildFlags);
in {
options.services.vyosBld = with lib; {
enable = mkEnableOption "VyOS automatic build";
output = mkOption {
type = types.str;
default = null;
description = "Where the iso should be copied to";
};
keep = mkOption {
type = types.number;
default = 5;
description = "Amount of versions to keep";
};
buildFreq = mkOption {
type = types.str;
default = "*-*-* 4:20:00";
description = "How often a new Image should be build. See {manpage}`systemd.timer(5)`";
};
flavor = mkOption {
type = types.str;
default = "iso";
description = "See VyOS build docs";
};
buildFlags = mkOption {
type = types.set;
default = "";
description = "Build Flags see https://docs.vyos.io/en/latest/contributing/build-vyos.html
example:
{ build-by = 'mail@server.tld' }";
};
};
config = with lib; mkIf cfg.enable rec {
bldScript = pkgs.copyPathToStore ./vybld.nix;
systemd.services.vyosBld = {
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.nix-shell} ${bldScript} -p docker git"
Type = "onshot";
};
};
systemd.timer.vyosBld-time = {
wantedBy = [ "timers.target" ];
timerConfig = {
Unit = "vyosBld.service";
OnCalendar = cfg.buildFreq;
};
};
};
};
;
});
}

Loading…
Cancel
Save