#!/usr/bin/env bash
set -euo pipefail

REPO="${1:-/home/intel145/git.repository}"

echo "Repository check: $REPO"

if [ ! -d "$REPO" ]; then
  echo "Status: missing"
  exit 1
fi

if ! git -C "$REPO" rev-parse --is-inside-work-tree >/dev/null 2>&1 && \
   ! git -C "$REPO" rev-parse --is-inside-git-dir >/dev/null 2>&1; then
  echo "Status: not a git repository"
  exit 1
fi

bare="$(git -C "$REPO" rev-parse --is-bare-repository)"
echo "Type: $([ "$bare" = "true" ] && echo "bare" || echo "normal")"

echo "Current branch: $(git -C "$REPO" branch --show-current || true)"

remotes="$(git -C "$REPO" remote)"
if [ -z "$remotes" ]; then
  echo "Remotes: none"
else
  echo "Remotes:"
  git -C "$REPO" remote -v
fi

echo
echo "Worktrees:"
git -C "$REPO" worktree list --porcelain

echo
echo "Integrity check:"
if git -C "$REPO" fsck --full; then
  echo "FSCK: no fatal errors"
else
  echo "FSCK: issues reported above"
fi
