Может ли grunt-shell взаимодействовать с пользователем?

Есть ли способ разрешить пользователю взаимодействовать с внутренней командой, вызываемой «grunt-shell» (или другой задачей, такой как «grunt-exec»)? У меня такой конфиг:

  grunt.initConfig({
     shell: {
        bower_install: {
           command: 'bower install'
       }
     }
  });

Проблема в том, что иногда сценариям необходимо взаимодействовать с пользователем (например, Bower предлагает вам выбрать версию пакета), но когда я запускаю свою задачу «оболочки grunt», после того момента, когда обычно Bower просит пользователя выбрать, задание grunt завершается неудачно.

Обходной путь может состоять в том, чтобы работать с зависимостями беседки, чтобы он не запрашивал выбор, но это не решение. Могу ли я заставить команды grunt-shell работать так же, как обычно, вызываемые из оболочки?

Спасибо за ответ.


person Adam Szmyd    schedule 15.05.2014    source источник
comment
Ваша конкретная проблема с Bower может быть связана с той же причиной, по которой read не отображает вывод при использовании в grunt-shell: приглашение отображается только тогда, когда команда выдается из терминала. См. stackoverflow.com/questions/27807982/. Это просто предположение.   -  person Richard Kiefer    schedule 27.03.2015


Ответы (1)


grunt-shell 1.1.2 может взаимодействовать с пользователем через стандартный ввод. Следующая grunt-задача загружает каталог через ftp с помощью wget и запрашивает пароль:

shell: {
    target: {
        command: 'wget --ftp-user=some-user --ask-password ftp://some-ftp/directory/*'
    }
}
person Richard Kiefer    schedule 27.03.2015
comment
Используйте параметры -r -l0 для рекурсивной загрузки всех подкаталогов. - person Richard Kiefer; 27.03.2015