package metrics

import (
	"os/exec"
	"strings"
	"syscall"
)

func getOSVersion() (string, string) {
	cmd := exec.Command("sw_vers", "-productVersion")

	output, err := cmd.Output()
	if err != nil {
		return "", ""
	}

	return strings.TrimSpace(string(output)), ""
}

func getFilesystemType(path string) (string, error) {
	var stat syscall.Statfs_t
	err := syscall.Statfs(path, &stat)
	if err != nil {
		return "", err
	}

	// Convert the filesystem type name from [16]int8 to string
	fsType := make([]byte, 0, 16)
	for _, c := range stat.Fstypename {
		if c == 0 {
			break
		}
		fsType = append(fsType, byte(c))
	}

	return string(fsType), nil
}