как я могу улучшить мой Rakefile (развертывание) - PullRequest
0 голосов
/ 17 февраля 2012

Я пишу свой первый Rakefile. Первое, что я вижу в документе: "нет специального формата для файла Rakefile" и "в Rakefile нет специального синтаксиса".

Хорошо, поэтому мне пришлось придумать что-то самостоятельно, но я вижу по крайней мере две проблемы с моим существом:

1) Мне нужно создать несколько папок, пять из них. Последовательность 6 directory задач выглядит немного странно. Список из 5 зависимостей в задаче deploy выглядит еще более странным. Могу ли я как-то уменьшить его до одной строки?

2) Мне нужно повторить литералы имен каталогов два раза - когда я определяю их пути развертывания и когда копирую содержимое. Можно ли избежать этого, не вводя еще 5 переменных?

В Java Ant я бы создал файл свойств со всеми литералами имен - могу ли я сделать это с помощью Rake?

Вот что у меня есть:

WEBAPPSDIR = '/var/webapps/'
WEBAPPNAME = 'foo.local'
WEBAPPDIR = File.join(WEBAPPSDIR, WEBAPPNAME)
VIEWSDIR = File.join(WEBAPPDIR, 'views')
PUBLICDIR = File.join(WEBAPPDIR, 'public')
CSSDIR = File.join(PUBLICDIR, 'css')
IMAGESDIR = File.join(PUBLICDIR, 'images')
TMPDIR = File.join(WEBAPPDIR, 'tmp')
HTMLDIR = File.join(PUBLICDIR, 'html')

directory VIEWSDIR
directory CSSDIR
directory HTMLDIR
directory IMAGESDIR
directory TMPDIR

desc 'Deploy to webapps dir'
task :deploy => [VIEWSDIR, CSSDIR, IMAGESDIR, TMPDIR, HTMLDIR] do
  cp 'config.ru', WEBAPPDIR
  Dir.glob('*.rb') {|f| cp f, WEBAPPDIR}
  Dir.glob('views/*.{mab,str}') {|f| cp f, VIEWSDIR}
  Dir.glob('css/*.css') {|f| cp f, CSSDIR}
  Dir.glob('images/*.{png,jpg,gif}') {|f| cp f, IMAGESDIR}
  Dir.glob('html/*.html') {|f| cp f, VIEWSDIR}
end

desc 'Cleans webapp dir'
task :clean do
  rm_r WEBAPPDIR, {force: true}
end

Другие мысли / ссылки / примеры приветствуются.

1 Ответ

1 голос
/ 17 февраля 2012

Это на самом деле не отвечает на ваш вопрос - но почему вы не используете capistrano? Если вы еще этого не знаете, это рубиновый инструмент, часто используемый для плавной обработки развертываний

...