Может ли 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
Другие вопросы по тегам