#!/bin/sh
# Codac diagnostic v1: prints availability only. No installs, network, credentials,
# file contents or paths are collected. Run in the intended project directory.
# command -v checks resolution, not tool health, version compatibility or login.
printf 'CODAC_DIAGNOSTIC_V1\n'
if [ "$(uname -s)" = Darwin ]; then
  printf 'os=macOS\n'
  printf 'version=%s\n' "$(sw_vers -productVersion)"
  printf 'arch=%s\n' "$(uname -m)"
  translated=$(sysctl -in sysctl.proc_translated 2>/dev/null)
  case "$translated" in 1) printf 'translated=yes\n';; 0) printf 'translated=no\n';; *) printf 'translated=unknown\n';; esac
  if xcode-select -p >/dev/null 2>&1; then printf 'clt=available\n'; else printf 'clt=missing\n'; fi
else
  printf 'os=other\nversion=unknown\narch=unknown\ntranslated=unknown\nclt=unknown\n'
fi
for tool in git brew node npm python3 rustc cargo codex ssh; do
  if command -v "$tool" >/dev/null 2>&1; then
    printf '%s=available\n' "$tool"
  else
    printf '%s=missing\n' "$tool"
  fi
done
printf 'project=available\n'
# Only invoke Apple's known Git after a developer-directory check on macOS.
# GIT_OPTIONAL_LOCKS avoids optional index refresh writes.
if [ "$(uname -s)" = Darwin ] && xcode-select -p >/dev/null 2>&1; then
  if GIT_OPTIONAL_LOCKS=0 /usr/bin/git rev-parse --is-inside-work-tree 2>/dev/null | grep -qx true; then
    printf 'repository=available\n'
  else printf 'repository=missing\n'; fi
else printf 'repository=unknown\n'; fi
printf 'END_CODAC_DIAGNOSTIC\n'
