main
 1{
 2  writeShellScriptBin,
 3}:
 4
 5writeShellScriptBin "repo-find" ''
 6  # Find a local git repository given owner/repo
 7  # Tries multiple common path patterns
 8
 9  if [ -z "$1" ]; then
10    echo "Usage: repo-find <owner/repo>" >&2
11    exit 1
12  fi
13
14  full_name="$1"
15  owner="''${full_name%%/*}"
16  repo="''${full_name##*/}"
17
18  # Paths to try in order
19  paths=(
20    "$HOME/src/github.com/$full_name"
21    "$HOME/src/$full_name"
22    "$HOME/src/$owner/$repo"
23    "$HOME/src/$repo"
24  )
25
26  for path in "''${paths[@]}"; do
27    if [ -d "$path" ]; then
28      echo "$path"
29      exit 0
30    fi
31  done
32
33  echo "Repository $full_name not found locally" >&2
34  exit 1
35''