mirror of
https://github.com/MaksTinyWorkshop/_Assistant_Lead_Tech
synced 2026-04-06 21:41:42 +02:00
feat: automate project bootstrap and registry
This commit is contained in:
77
scripts/resolve-project-path.sh
Executable file
77
scripts/resolve-project-path.sh
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
PROJECTS_CONF="$REPO_ROOT/_projects.conf"
|
||||
OS="$(uname -s)"
|
||||
PROJECT_NAME="${1:-}"
|
||||
|
||||
usage() {
|
||||
echo "Usage: resolve-project-path.sh <nom_du_projet>" >&2
|
||||
}
|
||||
|
||||
if [ -z "$PROJECT_NAME" ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$PROJECTS_CONF" ]; then
|
||||
echo "Erreur : fichier introuvable : $PROJECTS_CONF" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
resolve_base_path() {
|
||||
local scope="$1"
|
||||
|
||||
case "$OS" in
|
||||
Linux)
|
||||
case "$scope" in
|
||||
perso|mindleaf|lab|archive)
|
||||
echo "/srv/projects"
|
||||
;;
|
||||
*)
|
||||
echo "Erreur : scope inconnu sur Linux : $scope" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
Darwin)
|
||||
case "$scope" in
|
||||
perso)
|
||||
echo "/Volumes/TeraSSD/Projets_Dev"
|
||||
;;
|
||||
mindleaf)
|
||||
echo "/Volumes/TeraSSD/Projets_Dev/__Mindleaf"
|
||||
;;
|
||||
lab)
|
||||
echo "/Volumes/TeraSSD/Labs"
|
||||
;;
|
||||
archive)
|
||||
echo "/Volumes/TeraSSD/Archives_Projets"
|
||||
;;
|
||||
*)
|
||||
echo "Erreur : scope inconnu sur macOS : $scope" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo "Erreur : système non supporté : $OS" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
while IFS='|' read -r name stack scope state; do
|
||||
[[ -z "$name" || "$name" == \#* ]] && continue
|
||||
|
||||
if [ "$name" = "$PROJECT_NAME" ]; then
|
||||
BASE_PATH="$(resolve_base_path "$scope")"
|
||||
echo "$BASE_PATH/$name"
|
||||
exit 0
|
||||
fi
|
||||
done < "$PROJECTS_CONF"
|
||||
|
||||
echo "Erreur : projet introuvable dans _projects.conf : $PROJECT_NAME" >&2
|
||||
exit 1
|
||||
Reference in New Issue
Block a user