Fix module
This commit is contained in:
12
flake.nix
12
flake.nix
@@ -13,13 +13,17 @@
|
||||
flake-utils,
|
||||
}:
|
||||
flake-utils.lib.eachDefaultSystem (system: let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
pkgs = import nixpkgs {inherit system;};
|
||||
in {
|
||||
packages = rec {
|
||||
tauron-scrapper = pkgs.callPackage ./package.nix {};
|
||||
default = tauron-scrapper;
|
||||
};
|
||||
|
||||
nixosModules.tauron-scrapper = pkgs.callPackage ./module.nix {inherit self;};
|
||||
});
|
||||
})
|
||||
// {
|
||||
nixosModules = rec {
|
||||
tauron-scrapper = import ./module.nix self;
|
||||
default = tauron-scrapper;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
50
module.nix
50
module.nix
@@ -1,23 +1,42 @@
|
||||
{
|
||||
self: {
|
||||
config,
|
||||
coreutils-full,
|
||||
formats,
|
||||
pkgs,
|
||||
system,
|
||||
utils,
|
||||
lib,
|
||||
self,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
inherit (utils.systemdUtils.unitOptions) unitOption;
|
||||
inherit (pkgs) coreutils-full formats;
|
||||
cfg = config.services.tauron-scrapper;
|
||||
yamlConfig = (formats.yaml {}).generate "tauron-scrapper-config.yaml" cfg.config;
|
||||
app = pkgs.writeShellApplication {
|
||||
name = "tauron-scrapper";
|
||||
runtimeInputs = [self.packages.${system}.tauron-scrapper];
|
||||
text = ''
|
||||
tauron-scrapper -c "${yamlConfig}" "$@";
|
||||
'';
|
||||
};
|
||||
in {
|
||||
options.services.tauron-scrapper = {
|
||||
enable = mkEnableOption "tauron-scrapper";
|
||||
|
||||
cliArgs = mkOption {
|
||||
type = types.listOf types.str;
|
||||
description = "List of CLI arguments. Do not put '-c' argument here as it will be automatically appended basing on the 'config' option.";
|
||||
|
||||
example = [
|
||||
''--date "$(date -d '5 days ago' '+%Y-%m-%d')"''
|
||||
''--to "$(date -d 'yesterday' '+%Y-%m-%d')"''
|
||||
];
|
||||
|
||||
default = [
|
||||
''--date "$(date -d '5 days ago' '+%Y-%m-%d')"''
|
||||
''--to "$(date -d 'yesterday' '+%Y-%m-%d')"''
|
||||
];
|
||||
};
|
||||
|
||||
config = mkOption {
|
||||
type = types.attr;
|
||||
type = types.attrs;
|
||||
description = "The configuration of tauron-scrapper command";
|
||||
example = {
|
||||
timezone = "Europe/Warsaw";
|
||||
@@ -26,6 +45,7 @@ in {
|
||||
username = "$_file:/run/tauron.username.key";
|
||||
password = "$_file:/run/tauron.password.key";
|
||||
point = "123456";
|
||||
cookiesJarPath = "/tmp/tauron-scrapper.cookies.json";
|
||||
};
|
||||
|
||||
consumers = {
|
||||
@@ -54,12 +74,7 @@ in {
|
||||
};
|
||||
|
||||
timerConfig = mkOption {
|
||||
type = types.nullOr (types.attrsOf unitOption);
|
||||
|
||||
default = {
|
||||
OnCalendar = "*-*-* 03:00";
|
||||
Persistent = true;
|
||||
};
|
||||
type = types.attrs;
|
||||
|
||||
description = lib.mdDoc ''
|
||||
When to run the scrapping. See {manpage}`systemd.timer(5)` for
|
||||
@@ -68,13 +83,16 @@ in {
|
||||
'';
|
||||
|
||||
example = {
|
||||
OnCalendar = "00:05";
|
||||
OnCalendar = "*-*-* 15:15";
|
||||
RandomizedDelaySec = "2h";
|
||||
Persistent = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [app];
|
||||
|
||||
systemd.timers.tauron-scrapper = {
|
||||
description = "Tauron Scapper";
|
||||
wantedBy = ["timers.target"];
|
||||
@@ -90,10 +108,10 @@ in {
|
||||
description = "Tauron Scrapper";
|
||||
|
||||
serviceConfig.Type = "oneshot";
|
||||
path = [self.packages.${system}.tauron-scrapper coreutils-full];
|
||||
path = [app coreutils-full];
|
||||
|
||||
script = ''
|
||||
tauron-scrapper -c ${yamlConfig} -d "$(date -d "yesterday" '+%Y-%m-%d')"
|
||||
tauron-scrapper ${lib.concatStringsSep " " cfg.cliArgs};
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user