Estoy escribiendo un script automatizado que instalará iTerm2 si no está ya instalado. Cuál es una buena manera de comprobar si iTerm2 ya está instalado?
¡Buen uso de Spotlight!
Estoy escribiendo un script automatizado que instalará iTerm2 si no está ya instalado. Cuál es una buena manera de comprobar si iTerm2 ya está instalado?
Utilizando open -a iTerm.app
en un shell automatizado script para probar algo es muy inconveniente...
@klanomath es mala forma en un instalador también, ya que no debe asumir que nadie ha iniciado sesión todavía. Debería actualizar esto para las directrices de empaquetado.... la única manera sería decirle a alguien, "estamos a punto de abrir iTerm 2, haga clic aquí para descargarlo si la aplicación no se abre en breve..."
Hay al menos dos lugares donde se puede encontrar iTerm.app, en la carpeta /Applications/
(99% de las veces) o la propia carpeta del usuario $HOME/Applications/
(muy raro, pero posible).
Puedes comprobar si está en alguno de esos lugares de esta manera:
if [ ! -d '/Applications/iTerm.app' -a ! -d "$HOME/Applications/iTerm.app" ]
then
echo 'iTerm is not installed'
fi
También mencionaré que ya tengo un script que descargará e instalará la última versión de iTerm:
https://github.com/tjluoma/di/blob/master/di-iterm.sh
que forma parte de mi di - descargar e instalar que lo hará para más de 300 aplicaciones Mac.
di-iterm.sh
utiliza el feed oficial de Sparkle / XML para comprobar si existe la última versión, y hay formas de utilizar las versiones beta o nightly si prefieres una de esas opciones.
Si ya está instalado y actualizado, simplemente informará de ello y saldrá.
Si es no instalado o desactualizado, el script descargará la última versión, la instalará y moverá la versión antigua a la papelera.
Si tienes preguntas o problemas, no dudes en dejarme un issue en GitHub o enviarme un email (mi email está en el script). Por favor, también siéntete libre de usar / adaptar mi script como punto de partida si quieres hacer algo diferente.
Suponiendo que esté instalado en la carpeta estándar de Aplicaciones, utilice
if [[ ! -d /Applications/iTerm.app ]]; then
# proceed with installing iTerm
fi
Si desea cubrir situaciones en las que iTerm no está instalado en la ubicación estándar, puede utilizar
open -g -j -a iTerm 2>/dev/null
if [[ $? -eq 0 ]]; then
sleep 3
osascript -e 'tell application "iTerm" to quit'
else
# install iTerm
fi
Si iTerm ya se está ejecutando, se cerrará en este caso.
AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.