From 02870106bd4e8db20ef49a25dc240f672a812a83 Mon Sep 17 00:00:00 2001 From: Michael Czechowski Date: Tue, 16 Sep 2025 12:08:15 +0200 Subject: [PATCH] feat: add build timestamp service and version info to bash init --- common.nix | 47 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/common.nix b/common.nix index 180ca03..31d4d52 100644 --- a/common.nix +++ b/common.nix @@ -328,14 +328,28 @@ isoConfig chown workshop:workshop $AUTH_KEYS_FILE chmod 600 $AUTH_KEYS_FILE ''; - serviceConfig = { - Type = "oneshot"; - User = "root"; - RemainAfterExit = true; - }; - }; + serviceConfig = { + Type = "oneshot"; + User = "root"; + RemainAfterExit = true; + }; + }; - services.getty.autologinUser = "workshop"; + # Build timestamp service + systemd.services.workshop-build-info = { + description = "Write build timestamp to /etc/workshop-build-info"; + wantedBy = [ "multi-user.target" ]; + script = '' + echo "$(date '+%Y-%m-%d %H:%M:%S')" > /etc/workshop-build-info + ''; + serviceConfig = { + Type = "oneshot"; + User = "root"; + RemainAfterExit = true; + }; + }; + + services.getty.autologinUser = "workshop"; security.sudo.wheelNeedsPassword = false; # System Packages @@ -575,14 +589,17 @@ isoConfig export PATH="$PATH:/root/.local/bin" fi - # Check abra installation - if sudo abra >/dev/null 2>&1; then - echo "✅ abra ready: $(sudo which abra)" - source <(sudo abra autocomplete bash) 2>/dev/null || true - echo "✅ abra autocomplete enabled" - else - echo "⚠️ abra not found! Check: systemctl status workshop-abra-install" - fi + # Check abra installation + if sudo abra >/dev/null 2>&1; then + echo "✅ abra ready: $(sudo which abra)" + source <(sudo abra autocomplete bash) 2>/dev/null || true + echo "✅ abra autocomplete enabled" + else + echo "⚠️ abra not found! Check: systemctl status workshop-abra-install" + fi + + # Build info + echo "✅ Workshop ISO - NixOS $(nixos-version) - Built: $(cat /etc/workshop-build-info 2>/dev/null || echo 'unknown')" # Bash Completion Configuration _workshop_completion() {