diff --git a/modules/shared/host-info.bash b/modules/shared/host-info.bash new file mode 100644 index 0000000..6a35c99 --- /dev/null +++ b/modules/shared/host-info.bash @@ -0,0 +1,12 @@ +flake=$(nix flake metadata self --json | jq -r '.path' | sed -e 's|/nix/store/||' -e 's|-source||') +nix_version="$(nix store ping --store daemon --json | jq -r '.version')" +case "$(uname -s)" in +Darwin) + os_version="$(/usr/bin/sw_vers --productVersion)_$(/usr/bin/sw_vers --buildVersion)" + ;; +Linux) + os_version="$(uname -r)" + ;; +esac +system="$(nix eval --impure --raw --expr 'builtins.currentSystem')" +echo "host,flake=$flake,nix_version=$nix_version,os_version=$os_version,system=$system info=1" diff --git a/modules/shared/telegraf.nix b/modules/shared/telegraf.nix index e4abf58..e48f7d3 100644 --- a/modules/shared/telegraf.nix +++ b/modules/shared/telegraf.nix @@ -5,26 +5,15 @@ ... }: let - deps = [ - pkgs.nixVersions.nix_2_18 - pkgs.gnused - pkgs.jq - ]; - hostInfo = pkgs.writeShellScript "host-info" '' - export PATH=${lib.makeBinPath deps}:$PATH - flake=$(nix flake metadata self --json | jq -r '.path' | sed -e 's|/nix/store/||' -e 's|-source||') - nix_version="$(nix store ping --store daemon --json | jq -r '.version')" - case "$(uname -s)" in - Darwin) - os_version="$(/usr/bin/sw_vers --productVersion)_$(/usr/bin/sw_vers --buildVersion)" - ;; - Linux) - os_version="$(uname -r)" - ;; - esac - system="$(nix eval --impure --raw --expr 'builtins.currentSystem')" - echo "host,flake=$flake,nix_version=$nix_version,os_version=$os_version,system=$system info=1" - ''; + hostInfo = pkgs.writeShellApplication { + name = "host-info"; + runtimeInputs = [ + pkgs.nixVersions.nix_2_18 + pkgs.gnused + pkgs.jq + ]; + text = builtins.readFile ./host-info.bash; + }; in { environment.etc = @@ -52,7 +41,7 @@ in services.telegraf.extraConfig.inputs = { exec = [ { - commands = [ hostInfo ]; + commands = [ (lib.getExe hostInfo) ]; data_format = "influx"; } ];