From 6914a996587925f0f16c987d5fb0e889869b5da4 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 25 Jun 2024 15:11:07 +0200 Subject: [PATCH] timer fix? --- system-modules/boot.nix | 20 +++++------ system-modules/nx2site.nix | 73 ++++++++++++++++++++++++++------------ 2 files changed, 60 insertions(+), 33 deletions(-) diff --git a/system-modules/boot.nix b/system-modules/boot.nix index 0d14cbf..6fd3f1e 100755 --- a/system-modules/boot.nix +++ b/system-modules/boot.nix @@ -57,17 +57,15 @@ in extraModprobeConfig = ''options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1''; }; } else { # NxACE - kernelPackages = pkgs.linuxPackages_latest; - extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; - boot.loader.grub = { - enable = true; - configurationLimit = 30; - device = "nodev"; - # useOSProber = true; - efiSupport = true; - fontSize = 50; - efi.canTouchEfiVariables = true; - splashImage = null; + boot = { + loader = { + efi.canTouchEfiVariables = true; + grub = { + enable = true; + device = "nodev"; + efiSupport = true; + }; + }; }; }; } diff --git a/system-modules/nx2site.nix b/system-modules/nx2site.nix index 1349c5a..07dbff5 100644 --- a/system-modules/nx2site.nix +++ b/system-modules/nx2site.nix @@ -1,27 +1,56 @@ -{ config, pkgs, lib, user, host, ... }: +{ pkgs, lib, user, host, ... }: +lib.mkIf (host == "NxACE") { - imports = if host == "NxACE" then [ - - ] else []; - - config = lib.mkIf (host == "NxACE") { - systemd = { - timers."namecheap-dynamic-dns" = { - wantedBy = [ "timers.target" ]; - timerConfig = { - OnBootSec = "2m"; - OnUnitActiveSec = "10m"; - Unit = "namecheap-dynamic-dns.service"; - }; + systemd = { + timers."namecheap-dynamic-dns" = { + wantedBy = [ "timers.target" ]; + timerConfig = { + OnBootSec = "2m"; + OnUnitActiveSec = "10m"; + Unit = "namecheap-dynamic-dns.service"; }; - services."namecheap-dynamic-dns" = { - script = '' - /home/nx2/nx2site/domain/update-namecheap.sh - ''; - serviceConfig = { - Type = "oneshot"; - User = "nx2"; - }; + }; + services."namecheap-dynamic-dns" = + let + u = pkgs.writeScriptBin "update_namecheap" '' + my_ip=$(curl -s https://ipinfo.io/ip) + dns_ip=$(nslookup nx2.site | grep -E "Address: [0-9]" | cut -c 10-) + fdc="/home/nx2/nx2site/domain/count.txt" + + force_update=false + + while getopts "f" opt; do + case $opt in + f) + force_update=true + ;; + \?) + echo "Invalid option: -$OPTARG" >&2 + exit 1 + ;; + esac + done + + if [ "$force_update" == true ] || [ "$my_ip" != "$dns_ip" ]; then + count=$(<$fdc) + echo [ $count times ] $(date) from $dns_ip to $my_ip >> /home/nx2/nx2site/domain/updates.log + pw=$(cat /home/nx2/nx2site/domain/pw.txt) + # cat /home/nx2/nx2site/domain/subdomain.list | parallel -j2 "curl -s 'https://dynamicdns.park-your-domain.com/update?host={}&domain=nx2.site&password=$pw&ip=$my_ip'" + curl -s "https://dynamicdns.park-your-domain.com/update?host=@&domain=nx2.site&password=$pw&ip=$my_ip" + curl -s "https://dynamicdns.park-your-domain.com/update?host=*&domain=nx2.site&password=$pw&ip=$my_ip" + echo curl -s "https://dynamicdns.park-your-domain.com/update?host=*&domain=nx2.site&password=$pw&ip=$my_ip" + echo 0 > $fdc + fi + ''; + in + { + script = '' + set -eu + ${u}/bin/update_namecheap + ''; + serviceConfig = { + Type = "oneshot"; + User = "nx2"; }; }; };