Уровни детализации действий SCons

#shell #scons #verbosity

#оболочка #scons #детализация

Вопрос:

Учитывая, что мой конструктор Ada использует функцию ada_action , которая зарегистрирована

 static_obj.action(suffix, Action(ada_action, print_action_string)
  

который в настоящее время вызывает env.Execute() и далее

 def print_action_string(target, source, env):
    print env.subst(env["ADACOMSTR"], target=target, source=source)
  

Как я могу управлять уровнями детализации, чтобы, если env["ADACOMSTR"] определено, оно должно вызывать print_action_string и запрещать повторение команды оболочки, выполняемой в данный момент env.Execute() ?

Ответ №1:

Обычно вам не нужно использовать Execute() в действии builder. Возможно, если вы поделитесь этим фрагментом кода, это может помочь. Вы также можете изучить возможность использования генератора, в зависимости от того, что именно вы ищете.

Комментарии:

1. Хорошо, я думаю, мне следует использовать собственные встроенные команды оболочки Python и повторить их вручную (когда в моем случае флаг VERBOSE=on ) перед вызовом оболочки?

2. Это звучит как разумный подход.