Автоматизация

Sep 14, 2006 13:19

Дошли наконец руки, автоматизировал обновление сайта. Задачка то простая - есть энное количество html страниц, некоторые надо время от времени править на локальном сервере, ждать утверждения изменений и выкладывать их в инет. Хочется иметь одну большую кнопку - синхронизировать сайты, извращатся и привыкать к внешней тулзе влом ибо задачка как раз для утилиты make... Проблема тока в том что за полтора года я напрочь забыл что означают волшебные символы $@ $^ и т.п.

Случайно наткнулся на статью Мартина Фаулера о волшебной утилите rake, используемой для сборки проектов на ruby. Еще пятнадцать минут гугления по функциям ruby и вуаля:

require 'rake'
require 'find'

task :default => :copychanges
task :copychanges do
print "all done"
end

Find.find('src/') do |srcfile|
target = srcfile.sub(/^src/,'data')
changes = srcfile.sub(/^src/,'changes')
file target => srcfile do
if test(?f, srcfile)
cp srcfile, target cp srcfile, changes
else
mkdir_p target mkdir_p changes
end
end
task :copychanges => target
end

Правим в папке src/, храним копию в папке data/, по команде rake новые изменения попадают в папку changes.

web, ruby

Previous post Next post
Up