我正在编写我的第一个 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
也欢迎其他想法/链接/示例。