RPM: возвращение значений из включенного макроса RPM
Это дополнительный вопрос кRPM: загрузка скрипта bash в скрипт% pre.
Я пытаюсь определить некоторые служебные функции как макросы, поэтому позже я могу%include
их при сборке других пакетов RPM тоже. Допустим, я хочу иметь функциюtestfunc()
который я хочу использовать, чтобы проверить, присутствует ли что-то в целевой системе. Если условие не выполнено, я хочу прервать выполнение моего RPM%pre
скриптлет.
Вещи, которые я пробовал:
Определение функции bash в макросе
common.spec
%define importfunction() (testfunc() { echo "Cancelling installation!" ; exit 1 ; })
package.spec
%include SPECS/common.spec
...
%pre
%importfunction
testfunc
RPM установить вывод
testfunc: команда не найдена
Выход прямо из макроса
common.spec
%define testfunc() (echo "Cancelling installation!" ; exit 1)
package.spec
%include SPECS/common.spec
...
%pre
%testfunc
echo "Installation still running :("
RPM установить вывод
Отмена установки!
Установка еще работает :(
Проблема в том, что%pre
скриптлет не выходит в этом случае.
Вопросы
Как я могу нарушить исполнение%pre
из моего макроса?Можно ли вернуть значение из макроса и сохранить его в переменной во время%pre
?