Entonces tengo varias carpetas para una list de subdominios. Cada carpeta contiene el mismo script que adivina dinámicamente el host y carga varias configuraciones.
Así que la list está creciendo y el cd de cada carpeta se está volviendo aburrido.
El service de alojamiento de mi cliente es limitado y no puedo agregar una key ssh al host para que la extracción sea "sin contraseña", por lo que realizo la extracción a través de HTTPS.
No soy un experto en bash, pero el ciclo básico sería:
for dir in /tmp/*/ do #passwordless pulls done
Ahora aquí está el truco, algunas carpetas necesitan desarrollarse y otras extraer la twig maestra.
while read repo remote branch rest; do ( cd $repo git pull $remote $branch # do whatever with $rest ) 2>&1 | sed "s#^#$repo: #" & done <<EOD /path/to/repo origin branch1 /path/to/another github master EOD
O puede colocar las cosas en un file y </path/to/file
lugar de marcarlas después de <<EOD
.
Esto disparará todos los tirones en paralelo, si tienes muchos de ellos quizás sería mejor replace el &
al final con un ;
(o, lo que es equivalente, quítelo).
DEVLIST="list of hosts that pull develop" MASTERLIST="list of hosts that pull master" for D in ${DEVLIST} do cd /tmp/${D} git clone https://my.repo.edu/git/repo.git -b develop --single-branch done for M in ${MASTERLIST} do cd /tmp/${M} git clone https://my.repo.edu/git/repo.git -b master --single-branch done