我在创造一些构建脚本,用耙的过程中,将用作经Docker容器云部署我们的Web服务的整个过程的一部分。为了实现这个目标,我们使用Rake将来自多个Repos的资源组合起来,以“组合”目录/文件布局。这一切都很好,除了一个项目,.htaccess文件。如何使用Rake复制.htaccess文件?
这里是我创建了复制功能:
require 'fileutils'
EXT_ALLOWED = ["html", "css", "js", "svg", "otf", "eot", "ttf", "woff", "jpeg", "map", "ico", "map", "png", "db", "php", "conf"]
def copy_to(dest, src, trim="")
files = FileList.new()
EXT_ALLOWED.each {|ext| files.include "#{src}/**/*.#{ext}"}
files.each do |file|
dir = File.dirname(file)
filename = File.basename(file)
trimming = "/shared/" + trim + "(.*)"
path = dir.match(trimming)
if path == nil || dest == path[1] + '/'
bin = dest
else
bin = File.join(dest, path[1] + '/')
end
puts "copying #{file} to #{bin}"
FileUtils.mkdir_p(bin)
FileUtils.cp file, bin
end
end
它的用法是:
desc 'copies from shared/admin to the base server directory'
task :admin do
# Copy admin over
dest = 'www-server/'
src = '../shared/admin'
trim = "admin/"
copy_to dest, src, trim
end
的trim
变量是存在的,以确保文件被复制到相应的目录。在这种情况下,admin
文件直接复制到www-server
没有admin
子目录。
我,天真,尝试添加"htaccess"
到EXT_ALLOWED
阵列,但失败了。
我也跟着一些项目在网上,但大多数都与Octopress不解决问题。
的.htaccess
文件是../shared/admin
,需要在www-server/
结束了,我可以让这个函数内发生的呢?还是我需要专门为文件名开头写点东西?