Есть скрипт, который выводит результаты компиляции и компилирует соответственно. Мне нужно его модифицировать:
после окончания работы скрипта в выводе найти error и если фраза error есть, то заслать
throw new Exception('message')
и завершить работу скрипта
или если всё ок, то так же завершить работу скрипта
все операции с отправкой мессаги должны быть после mv
#!/bin/bash
cd /root/programming/ || exit
echo -e "\\n"
for sourcefile in /root/client_jenkins/workspace/test/*.cxx
do
name="$(echo -n "$sourcefile" | sed 's/.*\///;s/\.cxx$//')"
echo "$name"
./compiler "$sourcefile"
echo -e "\\n"
done
mv -f /root/programming/*.so /root/programming/compiled
Суть всей доработки в том, чтобы прошли полностью все действия, вплоть до некорректной рекурсивной компиляции и в самом конце всех действий Jenkins'у было отправлено сообщение о том, что сборка завершилась некорректно - были ошибки и статус сборки должен измениться на build error
Пытаюсь разобраться с условным оператором, но программу вижу как-то так:
#!/bin/bash
cd /root/programming/ || exit
echo -e "\\n"
for sourcefile in /root/client_jenkins/workspace/test/*.cxx
do
name="$(echo -n "$sourcefile" | sed 's/.*\///;s/\.cxx$//')"
echo "$name"
./compiler "$sourcefile"
echo -e "\\n" && echo -e >> compile_result
done
mv -f /root/programming/*.so /root/programming/compiled
grep -w "error" compile_result
if [$.. == error]
then
throw new Exception('message')
rm compile_result
else
// is ok
rm compile_result
fi