diff --git a/collector/flake.go b/collector/flake.go index 5e477bd..497ac53 100644 --- a/collector/flake.go +++ b/collector/flake.go @@ -226,11 +226,13 @@ func fetchFlakeMetadata(flakeURL string) (*flakeMetadata, error) { return &data, nil } +const nixosVersionPath = "/run/current-system/sw/bin/nixos-version" + func getNixosVersionInfo() (*nixosVersionInfo, error) { ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - cmd := exec.CommandContext(ctx, "nixos-version", "--json") + cmd := exec.CommandContext(ctx, nixosVersionPath, "--json") output, err := cmd.Output() if err != nil { if exitErr, ok := err.(*exec.ExitError); ok { diff --git a/collector/flake_test.go b/collector/flake_test.go index 2112e85..7d787ed 100644 --- a/collector/flake_test.go +++ b/collector/flake_test.go @@ -2,14 +2,14 @@ package collector import ( "encoding/json" - "os/exec" + "os" "testing" ) func TestGetNixosVersionInfo(t *testing.T) { // Skip if nixos-version command is not available - if _, err := exec.LookPath("nixos-version"); err != nil { - t.Skip("nixos-version command not available") + if _, err := os.Stat(nixosVersionPath); os.IsNotExist(err) { + t.Skip("nixos-version command not available (not running on NixOS)") } info, err := getNixosVersionInfo() diff --git a/main.go b/main.go index b1915bf..c88011a 100644 --- a/main.go +++ b/main.go @@ -15,7 +15,7 @@ import ( "github.com/prometheus/client_golang/prometheus/promhttp" ) -const version = "0.2.2" +const version = "0.2.3" func main() { cfg, err := config.Parse()