Дошли наконец руки, автоматизировал обновление сайта. Задачка то простая - есть энное количество 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.