Riesco a localizzare gli eseguibili denominati git
in diversi modi (sostanzialmente equivalenti a which git
). Ma tutte le soluzioni che conosco sono sconfitte dal programma falso /usr/bin/git
di OS X, che è un aggancio ad una finestra di dialogo che offre l'installazione di git
di Xcode (in seguito mi riferirò ad esso come programma di installazione di git OS X ).
Voglio rilevare questa situazione e trattare git
come non trovata se è l'unica. Non voglio doverlo eseguire per determinarlo, perché non voglio attivare la finestra di dialogo del programma di installazione.
Contesto: vorrei implementare quanto segue (come parte di un processo di installazione del software più grande):
- Determina se è installato un git "reale" (cioè, un eseguibile chiamato
git
, diverso dal programma di installazione git di OS X, si trova suPATH
), - Se lo è, riconoscilo e rispettalo e procedi (ho capito questa parte),
- Se non lo è, installa quello dal progetto git (ho capito questa parte).
Mi è comodo analizzare PATH
se necessario e cercare gli eseguibili da solo, se riesco a trovare un modo per ignorare il programma di installazione git di OS X. Mi sento a mio agio con un'euristica se riesce a farlo quasi sempre; Non ho bisogno di gestire casi limite (come qualcuno che crea un eseguibile o uno script chiamato git
che non è git
-compatibile).
Qual è il modo migliore (il più robusto, in secondo luogo più conveniente) per determinare se un installatore di git non OS X git
è installato su un sistema senza che esegue /usr/bin/git
(e attiva l'installatore finestra)?