Rake vs. Thor для сценариев автоматизации?

Я хочу автоматизировать такие вещи, как:

  • Создание нового приложения Ruby on Rails с предварительно выбранной базой данных, Git, инициализировать его, создать проект Heroku , фиксировать все файлы и т. д.
  • Загружать все файлы в папке на другой компьютер через SSH, но не перезаписывать файлы.
  • Обновите Ubuntu, установите все основные пакеты через apt-get.

Инструменты, насколько я понимаю а ведь это Рейк и Тор, какой из них мне следует использовать?

Рейк мне кажется более фактическим и популярным. Я слышал, как люди рекомендуют Тора.

Как они соотносятся друг с другом в кратком изложении?

46
задан Peter Mortensen 27 November 2016 в 03:11
поделиться

1 ответ

Грабли и Тор служат разным целям.

Rake - это общий инструмент-скрипт сборки, зависящий от проекта.Другими словами, вы помещаете свой rakefile в папку проекта и в систему управления версиями вашего проекта, и вы можете создавать, строить и выполнять другие задачи автоматизации, специфичные для вашего проекта, в этом rakefile. Rake требует для запуска rakefile.

Thor - это универсальный инструмент для создания сценариев командной строки, который позволяет очень легко повторно использовать сценарии во многих проектах, а также выполнять настройку проекта и т. Д., Как вы предлагаете. Thor позволяет вам «установить» исполняемый скрипт, который вы можете вызывать из любого места в вашей системе, аналогично вызову « ruby ​​», « gem » или « rake ] "командные строки. Однако скрипты Thor больше подходят для универсальной автоматизации между приложениями, потому что скрипт Thor не полагается на файл, находящийся в папке для конкретного проекта. Сценарий Thor - это весь сценарий, упакованный и установленный для повторного использования в любом месте.

Исходя из ваших заявленных потребностей, вам лучше использовать Thor, потому что вы сможете установить свой скрипт в одном месте, и он будет работать где угодно в вашей системе. Вы не будете привязаны к тому, где находится файл Rake или что-то в этом роде.

Между прочим, Rails 3 использует Thor практически для всего, что не относится к конкретному проекту. У вас все еще есть файл Rake, и вы все еще запускаете такие вещи, как « rake db: migrate » или « rake test: units ». Thor используется для таких вещей, как « rails new ... », « rails server » и « rails generate ... » Использование Thor AND Rake in Rails 3 - прекрасная иллюстрация того, где каждый из этих инструментов лучше всего подходит.

99
ответ дан 26 November 2019 в 20:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: