Ho un server CI con un'interfaccia a riga di comando che mi consente di avviare da remoto un lavoro ( jenkins
server CI e lo jenkins-cli.jar
strumento).
Dopo aver dato il via al lavoro ho tail -f
il registro (scusate il comando disordinato):
ssh -t my-jenkins-host.com "tail -f \"/var/lib/jenkins/jobs/$job_name/builds/\`ls -ltr /var/lib/jenkins/jobs/$job_name/builds/ | grep '^l' | tail -n 1|awk '{print \$9}'\`/log\""
Al termine del processo, in genere dopo almeno 5 minuti, sull'output viene visualizzata la seguente riga:
Finished: SUCCESS
Esiste un buon modo per smettere di seguire il registro a questo punto? cioè c'è un tail_until 'some line' my-file.log
comando?
BONUS: credito extra se puoi fornire una risposta che restituisce 0 quando SUCCESS è abbinato, 1 quando FAILURE è abbinato e la tua soluzione funziona su Mac! (che credo sia basato su bsd)