cleanup
This commit is contained in:
parent
0c6b26ce38
commit
2d255153fc
5 changed files with 48 additions and 51 deletions
6
flake.lock
generated
6
flake.lock
generated
|
@ -20,11 +20,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743964447,
|
"lastModified": 1748190013,
|
||||||
"narHash": "sha256-nEo1t3Q0F+0jQ36HJfbJtiRU4OI+/0jX/iITURKe3EE=",
|
"narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "063dece00c5a77e4a0ea24e5e5a5bd75232806f8",
|
"rev": "62b852f6c6742134ade1abdd2a21685fd617a291",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
16
flake.nix
16
flake.nix
|
@ -15,12 +15,7 @@
|
||||||
flake-parts.lib.mkFlake {inherit inputs;} {
|
flake-parts.lib.mkFlake {inherit inputs;} {
|
||||||
systems = ["x86_64-linux" "aarch64-linux"];
|
systems = ["x86_64-linux" "aarch64-linux"];
|
||||||
|
|
||||||
flake.nixosModules = let
|
flake.nixosModules.default = import ./module.nix self;
|
||||||
musicomp = import ./nixos/musicomp self;
|
|
||||||
in {
|
|
||||||
inherit musicomp;
|
|
||||||
default = musicomp;
|
|
||||||
};
|
|
||||||
|
|
||||||
perSystem = {
|
perSystem = {
|
||||||
pkgs,
|
pkgs,
|
||||||
|
@ -35,14 +30,7 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = let
|
packages.default = pkgs.callPackage ./package.nix {};
|
||||||
packages = lib.packagesFromDirectoryRecursive {
|
|
||||||
inherit (pkgs) callPackage;
|
|
||||||
directory = ./packages;
|
|
||||||
};
|
|
||||||
in packages // {
|
|
||||||
default = packages.musicomp;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ self: {
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
cfg = config.services.musicomp;
|
||||||
inherit (lib) types;
|
inherit (lib) types;
|
||||||
inherit (utils.systemdUtils.unitOptions) unitOption;
|
inherit (utils.systemdUtils.unitOptions) unitOption;
|
||||||
in {
|
in {
|
||||||
|
@ -73,43 +74,48 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
systemd.services =
|
systemd = lib.mkMerge (
|
||||||
lib.mapAttrs'
|
lib.mapAttrsToList (
|
||||||
(
|
jobName: job:
|
||||||
name: job:
|
let
|
||||||
lib.nameValuePair "musicomp-jobs-${name}" {
|
systemdName = "musicomp-job-${jobName}";
|
||||||
wantedBy = ["multi-user.target"];
|
description = "musicomp job ${jobName}";
|
||||||
restartIfChanged = false;
|
in
|
||||||
|
{
|
||||||
|
timers.${systemdName} = {
|
||||||
|
wantedBy = [ "timers.target" ];
|
||||||
|
inherit description;
|
||||||
|
inherit (job) timerConfig;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.${systemdName} = {
|
||||||
|
inherit description;
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
User = "root";
|
||||||
|
Group = "root";
|
||||||
|
};
|
||||||
|
|
||||||
script = ''
|
script = ''
|
||||||
${lib.optionalString job.inhibitsSleep ''
|
${lib.optionalString job.inhibitsSleep ''
|
||||||
${lib.getExe' pkgs.systemd "systemd-inhibit"} \
|
${lib.getExe' config.systemd.package "systemd-inhibit"} \
|
||||||
--mode block \
|
--mode block \
|
||||||
--who musicomp \
|
--who ${lib.escapeShellArg systemdName} \
|
||||||
--what sleep \
|
--what sleep \
|
||||||
--why ${lib.escapeShellArg "Scheduled musicomp ${name}"}
|
--why ${lib.escapeShellArg "Scheduled musicomp job ${jobName}"}
|
||||||
''}
|
''}
|
||||||
|
|
||||||
${lib.getExe job.package} \
|
${lib.getExe job.package} \
|
||||||
${lib.optionalString (job.workers > 0) "--workers ${job.workers}"} \
|
${lib.optionalString (job.workers > 0) "--workers ${lib.escapeShellArg job.workers}"} \
|
||||||
--verbose \
|
--verbose \
|
||||||
-- ${job.music} ${job.comp}
|
-- ${lib.escapeShellArg job.music} ${lib.escapeShellArg job.comp}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postStart = job.post;
|
postStart = job.post;
|
||||||
|
};
|
||||||
serviceConfig.Type = "oneshot";
|
}
|
||||||
}
|
) cfg.jobs
|
||||||
)
|
);
|
||||||
config.services.musicomp.jobs;
|
|
||||||
|
|
||||||
systemd.timers =
|
|
||||||
lib.mapAttrs'
|
|
||||||
(name: job:
|
|
||||||
lib.nameValuePair "musicomp-jobs-${name}" {
|
|
||||||
wantedBy = ["timers.target"];
|
|
||||||
inherit (job) timerConfig;
|
|
||||||
})
|
|
||||||
(lib.filterAttrs (_: job: job.timerConfig != null) config.services.musicomp.jobs);
|
|
||||||
};
|
};
|
||||||
}
|
}
|
|
@ -7,7 +7,7 @@ python3Packages.buildPythonApplication {
|
||||||
pname = "musicomp";
|
pname = "musicomp";
|
||||||
version = "0.1.0";
|
version = "0.1.0";
|
||||||
|
|
||||||
src = ../../.;
|
src = ./.;
|
||||||
|
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
|
@ -90,6 +90,9 @@ def main():
|
||||||
src_dir = args.music[0] # pyright: ignore[reportUnknownMemberType]
|
src_dir = args.music[0] # pyright: ignore[reportUnknownMemberType]
|
||||||
dst_dir = args.comp[0] # pyright: ignore[reportUnknownMemberType]
|
dst_dir = args.comp[0] # pyright: ignore[reportUnknownMemberType]
|
||||||
|
|
||||||
|
if args.verbose >= 1 or args.interactive:
|
||||||
|
print("Planning...", file=sys.stderr)
|
||||||
|
|
||||||
plan = list(
|
plan = list(
|
||||||
Todo.plan(
|
Todo.plan(
|
||||||
src_dir,
|
src_dir,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue