mirror of
https://codeberg.org/privacy1st/nix-git
synced 2025-04-01 16:45:59 +02:00
add notify-change
This commit is contained in:
parent
d30dc07b3f
commit
b118c31fd5
@ -1,8 +1,12 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
name = "Jinja-Compose";
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
../../modules/snowflake.nix
|
||||
./syncthing.nix
|
||||
./notify-change.nix
|
||||
];
|
||||
|
||||
# Update and start Jinja-Compose project
|
||||
@ -10,9 +14,9 @@
|
||||
# To view the log, run
|
||||
# journalctl -b -u Jinja-Compose -f
|
||||
#
|
||||
systemd.timers."Jinja-Compose" = {
|
||||
systemd.timers."${name}" = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
partOf = [ "Jinja-Compose.service" ];
|
||||
partOf = [ "${name}.service" ];
|
||||
timerConfig = {
|
||||
OnBootSec = "0m";
|
||||
OnUnitInactiveSec = "30m";
|
||||
@ -22,8 +26,8 @@
|
||||
};
|
||||
};
|
||||
# TODO: Add shutdown script (./docker-compose down).
|
||||
systemd.services."Jinja-Compose" = {
|
||||
description = "Update and start Jinja-Compose project";
|
||||
systemd.services."${name}" = {
|
||||
description = "Update and start ${name} project";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
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