From c0b6667052203c7df899a89a745d9ca3ab4c7fd8 Mon Sep 17 00:00:00 2001 From: intergrav Date: Sun, 12 Jul 2026 15:06:25 -0400 Subject: [PATCH] feat: ipod-sync --- hosts/nixos/bluepill/services/ipod-sync.nix | 34 +++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 hosts/nixos/bluepill/services/ipod-sync.nix diff --git a/hosts/nixos/bluepill/services/ipod-sync.nix b/hosts/nixos/bluepill/services/ipod-sync.nix new file mode 100644 index 0000000..9b15282 --- /dev/null +++ b/hosts/nixos/bluepill/services/ipod-sync.nix @@ -0,0 +1,34 @@ +{pkgs, ...}: let + ipodUuid = "A751-935A"; +in { + services.udev.extraRules = '' + ACTION=="add", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", ENV{ID_FS_UUID}=="${ipodUuid}", TAG+="systemd", ENV{SYSTEMD_WANTS}+="ipod-sync.service" + ''; + + systemd.services.ipod-sync = { + description = "Sync music to iPod"; + + serviceConfig = { + Type = "oneshot"; + RuntimeDirectory = "ipod"; + TimeoutStartSec = "4h"; + }; + + script = '' + set -eu + + ${pkgs.util-linux}/bin/mount \ + /dev/disk/by-uuid/${ipodUuid} \ + /run/ipod + + trap '${pkgs.util-linux}/bin/umount /run/ipod' EXIT + + ${pkgs.rsync}/bin/rsync \ + -rt \ + --delete \ + --modify-window=1 \ + /srv/media/music/ \ + /run/ipod/Sync/ + ''; + }; +} -- 2.51.2