mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #2696 from furunkel/master
Properly implement directory tasks
This commit is contained in:
@@ -237,7 +237,8 @@ module MiniRake
|
||||
|
||||
# Time stamp for file task.
|
||||
def timestamp
|
||||
File::stat(name.to_s).mtime
|
||||
stat = File::stat(name.to_s)
|
||||
stat.directory? ? Time.at(0) : stat.mtime
|
||||
end
|
||||
end
|
||||
|
||||
@@ -254,12 +255,14 @@ module MiniRake
|
||||
|
||||
# Declare a set of files tasks to create the given directories on
|
||||
# demand.
|
||||
def directory(dir)
|
||||
path = []
|
||||
Sys.split_all(dir).each do |p|
|
||||
path << p
|
||||
FileTask.define_task(File.join(path)) do |t|
|
||||
Sys.makedirs(t.name)
|
||||
def directory(args, &block)
|
||||
MiniRake::FileTask.define_task(args) do |t|
|
||||
block.call(t) unless block.nil?
|
||||
dir = args.is_a?(Hash) ? args.keys.first : args
|
||||
(dir.split(File::SEPARATOR) + ['']).inject do |acc, part|
|
||||
(acc + File::SEPARATOR).tap do |d|
|
||||
Dir.mkdir(d) unless File.exists? d
|
||||
end + part
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user