Esto es muy fácil de hacer.
Por eficiencia (y por el factor cool), yo utilizaría una herramienta como Lingon para lanzar este script periódicamente usando launchctl/launchd en lugar de cada vez que inicie un shell. En mi MacBook, tarda 3 segundos en actualizarse la segunda vez (sin trabajo realizado, caché de DNS establecida, etc...) y tarda 10 segundos en ejecutarse la primera vez (sin trabajo realizado) o 15+ segundos si hay que descargar o compilar un paquete.
¿Quizás una vez al día o una vez por hora, ejecutándose en segundo plano, sería suficiente con esos tiempos de ejecución?
Podrías hacer un simple script /usr/local/bin/brewup
que llama a brew a su vez y registra los resultados en el registro del sistema. Si no te gusta perseguir los registros en el almacén centralizado de registros, "teeing" a un archivo de texto también funciona bien.
#!/bin/bash
brew=/usr/local/bin/brew
logger=/usr/bin/logger
$brew update 2>&1 | $logger -t brewup.update
$brew upgrade 2>&1 | $logger -t brewup.upgrade
$brew cleanup 2>&1 | $logger -t brewup.cleanup
Simplemente llamo al brewup cuando estoy a punto de ir a hacer el té o cuando empiezo y dejo que se ejecute en segundo plano.
brewup &
0 votos
Puede hacerlo en
~/.bash_profile
archivo. Tendrá que comprobar si sólo hay una sesión de Terminal abierta y luego ejecutarbrew update
. Consulte stackoverflow.com/questions/6172663/ para determinar el número de Windows de Terminal.0 votos
Es decir, el número de los terminales que están abiertos cuando se ejecuta el script o el número de terminales abiertos en general?
0 votos
Es el número de Terminales abiertas (Windows + pestañas) cuando se ejecuta el script.
~/.bash_profile
se ejecuta automáticamente al inicio de la sesión de Terminal. Esta comprobación es necesaria si necesita ejecutarbrew update
en la primera salida. Si desea ejecutar esto cada vez que se abra una nueva ventana, omita este paso y ejecutebrew update
en~/.bash_profile
.1 votos
Hará que la apertura de una pestaña de Terminal sea muy lenta
0 votos
¡Bien, gracias! :) ¿Disminuirá mucho el rendimiento del terminal?
0 votos
Sí - requerirá un enlace a través de Internet y el trabajo para comparar con un servidor para la actualización + posiblemente una construcción y al menos descargas para la actualización así que milisegundos o segundos por lo menos (es decir, notable) en lugar de nanosegundos
0 votos
Launchd (o crontab) según la otra respuesta es mejor. Sin embargo, el método anterior no afectará mucho a la terminal si precedes el comando con
nice
y seguirlo con un ampersand. Creo que no funcionará, sin embargo, a menos que lo ejecute en una cuenta consudó
derechos.