Может ли bjam сказать вам каждый раз, когда он завершил создание цели?
Я создаю сценарий, который уведомляет меня о прогрессе моих сборок. В начале сборки bjam
говорит мне "обновление # целей...".
Есть ли bjam
есть возможность уведомлять вас каждый раз, когда он заканчивает построение определенной цели? В идеале я хочу grep
вывод для них и вывод в процентах на мой экран.
1 ответ
После использования bjam я наконец понял, что ответ был передо мной все время. Оказывается, что для каждой построенной цели она выведет имя объекта на экран. Так что в моем случае я нашел решение, которое имеет разумное приближение к количеству целей путем подсчета соответствующих *.o
а также *.so
линии в данный момент времени. Надеюсь, это может помочь кому-то еще в будущем!
Я создал псевдоним под названием Bjam
:
alias Bjam=' reset ; sudo bjam -j4 release address-model=32 toolset=gcc-arm target-os=linux threading=multi | Bjam2'
и сценарий оболочки под названием Bjam2
:
#!/bin/bash
n=0
while read line; do
if [ $(echo $line | grep -c '^...updating.*targets...$') -eq 1 ] ; then
TOT=$(echo $line| sed 's|^\.\.\.updating \([0-9]*\) targets\.\.\.$|\1|' )
fi
if [ $(echo $line | grep -c '^gcc\.compile\.c++.*\.o$' ) -eq 1 ] || [ $(echo $line | grep -c '^.*\.so$' ) -eq 1 ]; then
n=$((n+1))
echo "$n/$TOT : $line"
else
echo $line
fi
done