mirror of
https://codeberg.org/privacy1st/nix-git
synced 2025-04-02 16:55:59 +02:00
add notify-change
This commit is contained in:
parent
d30dc07b3f
commit
b118c31fd5
@ -1,8 +1,12 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
name = "Jinja-Compose";
|
||||||
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../modules/snowflake.nix
|
../../modules/snowflake.nix
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
|
./notify-change.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Update and start Jinja-Compose project
|
# Update and start Jinja-Compose project
|
||||||
@ -10,9 +14,9 @@
|
|||||||
# To view the log, run
|
# To view the log, run
|
||||||
# journalctl -b -u Jinja-Compose -f
|
# journalctl -b -u Jinja-Compose -f
|
||||||
#
|
#
|
||||||
systemd.timers."Jinja-Compose" = {
|
systemd.timers."${name}" = {
|
||||||
wantedBy = [ "timers.target" ];
|
wantedBy = [ "timers.target" ];
|
||||||
partOf = [ "Jinja-Compose.service" ];
|
partOf = [ "${name}.service" ];
|
||||||
timerConfig = {
|
timerConfig = {
|
||||||
OnBootSec = "0m";
|
OnBootSec = "0m";
|
||||||
OnUnitInactiveSec = "30m";
|
OnUnitInactiveSec = "30m";
|
||||||
@ -22,8 +26,8 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
# TODO: Add shutdown script (./docker-compose down).
|
# TODO: Add shutdown script (./docker-compose down).
|
||||||
systemd.services."Jinja-Compose" = {
|
systemd.services."${name}" = {
|
||||||
description = "Update and start Jinja-Compose project";
|
description = "Update and start ${name} project";
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
PrivateTmp = true;
|
PrivateTmp = true;
|
||||||
|
106
hosts/yodaNas/notify-change.nix
Normal file
106
hosts/yodaNas/notify-change.nix
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
{ config, pkgs, ...}:
|
||||||
|
let
|
||||||
|
name = "notify-change";
|
||||||
|
subdir = "readonly-git/notify-change";
|
||||||
|
fulldir = "/home/yoda/${subdir}";
|
||||||
|
|
||||||
|
jdk = pkgs.jdk23;
|
||||||
|
gradle = pkgs.gradle.override {
|
||||||
|
java = jdk;
|
||||||
|
javaToolchains = [ jdk ];
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# /secrets/"${name}-EMAIL_USER"
|
||||||
|
deployment.keys."${name}-EMAIL_USER" = {
|
||||||
|
keyFile = ../../secrets/user.web.de;
|
||||||
|
destDir = "/secrets";
|
||||||
|
user = "yoda";
|
||||||
|
#group = "smtpd"; # Default: root
|
||||||
|
permissions = "0400";
|
||||||
|
uploadAt = "pre-activation";
|
||||||
|
};
|
||||||
|
# /secrets/"${name}-EMAIL_PASSWORD"
|
||||||
|
deployment.keys."${name}-EMAIL_PASSWORD" = {
|
||||||
|
keyFile = ../../secrets/pwd.web.de;
|
||||||
|
destDir = "/secrets";
|
||||||
|
user = "yoda";
|
||||||
|
#group = "smtpd"; # Default: root
|
||||||
|
permissions = "0400";
|
||||||
|
uploadAt = "pre-activation";
|
||||||
|
};
|
||||||
|
# /secrets/"${name}-ILIAS_USER"
|
||||||
|
deployment.keys."${name}-ILIAS_USER" = {
|
||||||
|
keyFile = ../../secrets/user.ilias.uni-marburg.de;
|
||||||
|
destDir = "/secrets";
|
||||||
|
user = "yoda";
|
||||||
|
#group = "smtpd"; # Default: root
|
||||||
|
permissions = "0400";
|
||||||
|
uploadAt = "pre-activation";
|
||||||
|
};
|
||||||
|
# /secrets/"${name}-ILIAS_PASSWORD"
|
||||||
|
deployment.keys."${name}-ILIAS_PASSWORD" = {
|
||||||
|
keyFile = ../../secrets/pwd.ilias.uni-marburg.de;
|
||||||
|
destDir = "/secrets";
|
||||||
|
user = "yoda";
|
||||||
|
#group = "smtpd"; # Default: root
|
||||||
|
permissions = "0400";
|
||||||
|
uploadAt = "pre-activation";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Download notify-change Git repository.
|
||||||
|
# home-manager.users.yoda = { osConfig, config, pkgs, ... }: {
|
||||||
|
# home.file."${subdir}".source = (builtins.fetchGit {
|
||||||
|
# url = "https://codeberg.org/privacy1st/selenium-webdriver-ide-demo";
|
||||||
|
# ref = "changedetection";
|
||||||
|
# #leaveDotGit = true;
|
||||||
|
# });
|
||||||
|
# };
|
||||||
|
|
||||||
|
# TODO: Properly build gradle project with nix instead of systemd service script "git pull & gradle build"
|
||||||
|
|
||||||
|
# Run service once per day.
|
||||||
|
systemd.timers."${name}" = {
|
||||||
|
wantedBy = [ "timers.target" ];
|
||||||
|
partOf = [ "${name}.service" ];
|
||||||
|
timerConfig = {
|
||||||
|
OnBootSec = "0m";
|
||||||
|
OnUnitInactiveSec = "1d";
|
||||||
|
|
||||||
|
AccuracySec = "5m";
|
||||||
|
RandomizedDelaySec = "5m";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# Service definition.
|
||||||
|
systemd.services."${name}" = {
|
||||||
|
description = "Send notification on website change";
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
PrivateTmp = true;
|
||||||
|
User = "yoda";
|
||||||
|
};
|
||||||
|
path = [
|
||||||
|
pkgs.bash # todo
|
||||||
|
pkgs.git
|
||||||
|
jdk
|
||||||
|
gradle
|
||||||
|
pkgs.firefox
|
||||||
|
];
|
||||||
|
script = ''
|
||||||
|
set -eu -o pipefail
|
||||||
|
|
||||||
|
TESSERACT_LIB="${pkgs.tesseract}/lib"
|
||||||
|
TESSDATA_PREFIX="${pkgs.tesseract}/share/tessdata"
|
||||||
|
|
||||||
|
if test -d "${fulldir}"; then
|
||||||
|
cd "${fulldir}"
|
||||||
|
git pull
|
||||||
|
else
|
||||||
|
git clone --branch changedetection --single-branch https://codeberg.org/privacy1st/selenium-webdriver-ide-demo.git "${fulldir}"
|
||||||
|
cd "${fulldir}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
gradle :app:test --tests "de.p1st.changedetection.IliasFB12CoursesTest"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user