mirror of
https://github.com/kmein/niveum
synced 2026-03-20 12:01:06 +01:00
Compare commits
2 Commits
2b2290841b
...
39917e0bf6
| Author | SHA1 | Date | |
|---|---|---|---|
| 39917e0bf6 | |||
| 6727673dcf |
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"url": "https://github.com/nix-community/home-manager.git",
|
||||
"rev": "fd5fbb0a241f644908cdf01ccd1821d0606fb4fd",
|
||||
"date": "2021-06-04T08:48:46+02:00",
|
||||
"path": "/nix/store/gpdv43bglgz4mllyasj2lc703lnn84i9-home-manager",
|
||||
"sha256": "0qkjwnfcqmwgk7sy5xzzf4z0dnxszwgx0303ngjmz1qjw3md43hc",
|
||||
"rev": "148d85ee8303444fb0116943787aa0b1b25f94df",
|
||||
"date": "2021-06-05T20:31:59+02:00",
|
||||
"path": "/nix/store/c7mzbvagdx744avi1ldg6h2qk7ff0mv9-home-manager",
|
||||
"sha256": "1qdq9cm10lq7ypj26qk4l8mwpmz24j7yn5diy6xi4bijnk0hh07n",
|
||||
"fetchSubmodules": false,
|
||||
"deepClone": false,
|
||||
"leaveDotGit": false
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"url": "https://github.com/NixOS/nixpkgs.git",
|
||||
"rev": "a95f4166abb329f5a5117bb47bec2b9678962336",
|
||||
"date": "2021-06-05T17:40:05+02:00",
|
||||
"path": "/nix/store/gqqc537gbmcrlj59qdl4f9db5zv9dvxx-nixpkgs",
|
||||
"sha256": "0h4mhl5r1d4846j9habbwabq30pr2435v1hga45d6ayzdx3n5pxp",
|
||||
"rev": "20b3d65d34eea0070c991ce169f06d600ec6e1fd",
|
||||
"date": "2021-06-06T11:40:58+01:00",
|
||||
"path": "/nix/store/3a18iv748mdfhyy602f5z6s1ig0q3qi8-nixpkgs",
|
||||
"sha256": "1ja09aifii2n8yzrrv1pjfvp5396iw0fknmhdv7zg3551xkm5385",
|
||||
"fetchSubmodules": false,
|
||||
"deepClone": false,
|
||||
"leaveDotGit": false
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"url": "https://github.com/NixOS/nixpkgs.git",
|
||||
"rev": "aa576357673d609e618d87db43210e49d4bb1789",
|
||||
"date": "2021-06-04T17:36:38+02:00",
|
||||
"path": "/nix/store/qqz5xq0dg8zm8blba5cg7704kbrhqhki-nixpkgs",
|
||||
"sha256": "1868s3mp0lwg1jpxsgmgijzddr90bjkncf6k6zhdjqihf0i1n2np",
|
||||
"rev": "5de44c15758465f8ddf84d541ba300b48e56eda4",
|
||||
"date": "2021-06-05T20:40:48+01:00",
|
||||
"path": "/nix/store/p5mhp3syp0aqkcrwmf8zi3ik7mgxrlgx-nixpkgs",
|
||||
"sha256": "05darjv3zc5lfqx9ck7by6p90xgbgs1ni6193pw5zvi7xp2qlg4x",
|
||||
"fetchSubmodules": false,
|
||||
"deepClone": false,
|
||||
"leaveDotGit": false
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"url": "https://github.com/nix-community/NUR",
|
||||
"rev": "cb7038a463e03dcafbc67910d5a6df21c47e6cb1",
|
||||
"date": "2021-06-05T15:08:44+00:00",
|
||||
"path": "/nix/store/7nj0qdjq0srsg0507wqcl8zdikmn96vr-NUR",
|
||||
"sha256": "0lvp37ypvjvynky544hk9wxdfybywp1idgdvn0kqhlw1sl1plqz3",
|
||||
"rev": "cbef2d5d75291b088ed99f406740c35e04d249ac",
|
||||
"date": "2021-06-06T08:25:05+00:00",
|
||||
"path": "/nix/store/jvfzn3bpm9sb51190cs76ja592cpwndr-NUR",
|
||||
"sha256": "1il1pvr916v09jds1fvkrxmb6kazz6gag7n06ssvyvk474hyai9z",
|
||||
"fetchSubmodules": false,
|
||||
"deepClone": false,
|
||||
"leaveDotGit": false
|
||||
|
||||
@@ -1,17 +1,11 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
nixpkgs-kmein = builtins.fetchGit {
|
||||
url = "https://github.com/kmein/nixpkgs";
|
||||
ref = "refs/heads/feature/moodle-dl-module";
|
||||
rev = "ea2e0387ee946e575f7851ec21debc9179d82ad0";
|
||||
};
|
||||
|
||||
moodle-dl-package = (import nixpkgs-kmein {}).moodle-dl.overrideAttrs (old: old // {
|
||||
moodle-dl-package = pkgs.moodle-dl.overrideAttrs (old: old // {
|
||||
patches = [ <niveum/packages/moodle-dl/telegram-format.patch> ];
|
||||
});
|
||||
in
|
||||
{
|
||||
imports = [ "${nixpkgs-kmein}/nixos/modules/services/networking/moodle-dl.nix" ];
|
||||
imports = [ <niveum/modules/moodle-dl.nix> ];
|
||||
|
||||
services.moodle-dl = {
|
||||
enable = true;
|
||||
|
||||
@@ -1,17 +1,11 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
nixpkgs-kmein = builtins.fetchGit {
|
||||
url = "https://github.com/kmein/nixpkgs";
|
||||
ref = "refs/heads/feature/moodle-dl-module";
|
||||
rev = "11e035b133ea9fbf07bc1b6185990b095358ab4f";
|
||||
};
|
||||
|
||||
moodle-dl-package = (import nixpkgs-kmein {}).moodle-dl.overrideAttrs (old: old // {
|
||||
moodle-dl-package = pkgs.moodle-dl.overrideAttrs (old: old // {
|
||||
patches = [ <niveum/packages/moodle-dl/telegram-format.patch> ];
|
||||
});
|
||||
in
|
||||
{
|
||||
imports = [ "${nixpkgs-kmein}/nixos/modules/services/networking/moodle-dl.nix" ];
|
||||
imports = [ <niveum/modules/moodle-dl.nix> ];
|
||||
|
||||
services.moodle-dl = {
|
||||
enable = true;
|
||||
|
||||
82
modules/moodle-dl.nix
Normal file
82
modules/moodle-dl.nix
Normal file
@@ -0,0 +1,82 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.moodle-dl;
|
||||
json = pkgs.formats.json {};
|
||||
moodle-dl-json = json.generate "moodle-dl.json" cfg.settings;
|
||||
stateDirectoryDefault = "/var/lib/moodle-dl";
|
||||
in {
|
||||
options = {
|
||||
services.moodle-dl = {
|
||||
enable = mkEnableOption "moodle-dl, a Moodle downloader";
|
||||
|
||||
settings = mkOption {
|
||||
default = {};
|
||||
type = json.type;
|
||||
description = ''
|
||||
Configuration for moodle-dl. For a full example, see
|
||||
<link xlink:href="https://github.com/C0D3D3V/Moodle-Downloader-2/wiki/Config.json"/>.
|
||||
'';
|
||||
};
|
||||
|
||||
notifyOnly = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Whether to notify about changes without downloading any files.
|
||||
'';
|
||||
};
|
||||
|
||||
startAt = mkOption {
|
||||
type = with types; either str (listOf str);
|
||||
description = "When to run moodle-dl. See systemd.time(7) for the format.";
|
||||
};
|
||||
|
||||
directory = mkOption {
|
||||
default = stateDirectoryDefault;
|
||||
type = types.path;
|
||||
description = ''
|
||||
The path moodle-dl should download course files to. If left
|
||||
as the default value this directory will automatically be created before
|
||||
moodle-dl runs, otherwise the sysadmin is responsible for ensuring
|
||||
the directory exists with appropriate ownership and permissions.
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
default = pkgs.moodle-dl;
|
||||
type = types.package;
|
||||
description = "The moodle-dl package to use.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
users.users.moodle-dl = {
|
||||
isSystemUser = true;
|
||||
home = cfg.directory;
|
||||
};
|
||||
|
||||
users.groups.moodle-dl = {};
|
||||
|
||||
systemd.services.moodle-dl = {
|
||||
description = "A Moodle downloader that downloads course content";
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = mkMerge [
|
||||
{
|
||||
Type = "oneshot";
|
||||
User = config.users.users.moodle-dl.name;
|
||||
Group = config.users.groups.moodle-dl.name;
|
||||
WorkingDirectory = cfg.directory;
|
||||
ExecStart = "${cfg.package}/bin/moodle-dl ${lib.optionalString cfg.notifyOnly "--without-downloading-files"}";
|
||||
ExecStartPre = "${pkgs.coreutils}/bin/ln -sfn ${toString moodle-dl-json} ${cfg.directory}/config.json";
|
||||
}
|
||||
(mkIf (cfg.directory == stateDirectoryDefault) { StateDirectory = "moodle-dl"; })
|
||||
];
|
||||
inherit (cfg) startAt;
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = [ maintainers.kmein ];
|
||||
}
|
||||
Reference in New Issue
Block a user