54 lines
1.4 KiB
Nix
54 lines
1.4 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
with lib;
|
|
let
|
|
cfg = config.services.hoyolab-daily-bot;
|
|
in {
|
|
options.services.hoyolab-daily-bot = {
|
|
enable = mkEnableOption "Hoyolab Daily Bot";
|
|
|
|
package = mkOption {
|
|
type = types.package;
|
|
description = lib.mdDoc "Which package to use.";
|
|
default = pkgs.hoyolab-daily-bot;
|
|
defaultText = literalExpression "pkgs.hoyolab-daily-bot";
|
|
};
|
|
|
|
cookieFiles = mkOption {
|
|
type = types.listOf types.str;
|
|
default = [ ];
|
|
description =
|
|
lib.mdDoc "List of paths to cookie files. If not provided, use cookie from browser.";
|
|
};
|
|
|
|
user = mkOption {
|
|
type = types.str;
|
|
default = "root";
|
|
description = lib.mdDoc "";
|
|
};
|
|
|
|
startAt = mkOption {
|
|
type = types.str;
|
|
default = "*-*-* 20:00:00";
|
|
description = lib.mdDoc "";
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
systemd.services.hoyolab-daily-bot = {
|
|
description = "Hoyolab Daily Login Bot.";
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
User = cfg.user;
|
|
StateDirectory = "hoyolab-daily-bot";
|
|
};
|
|
startAt = cfg.startAt;
|
|
script = if (cfg.cookieFiles == [ ]) then ''
|
|
${cfg.package}/bin/hoyolab-daily-bot
|
|
'' else ''
|
|
${concatMapStringsSep "\n" (x:
|
|
"${cfg.package}/bin/hoyolab-daily-bot -c ${x}"
|
|
) cfg.cookieFiles}
|
|
'';
|
|
};
|
|
};
|
|
} |