From 432afa2c42f82093626f88242073ce135ad1b156 Mon Sep 17 00:00:00 2001 From: Julian Aron Prenner Date: Tue, 6 Jan 2015 21:23:19 +0100 Subject: Properly implement directory tasks --- minirake | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/minirake b/minirake index bdaef0b87..6b23e8c7d 100755 --- a/minirake +++ b/minirake @@ -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).reject(&:empty?).inject("") do |acc, part| + (acc + File::SEPARATOR + part).tap do |d| + Dir.mkdir(d) unless File.exists? d + end end end end -- cgit v1.2.3 From edf7729d891b37423ca6b02768570e0b441f2884 Mon Sep 17 00:00:00 2001 From: Julian Aron Prenner Date: Wed, 7 Jan 2015 09:24:48 +0100 Subject: Correctly handle relative paths --- minirake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/minirake b/minirake index 6b23e8c7d..eb219b934 100755 --- a/minirake +++ b/minirake @@ -259,10 +259,10 @@ module MiniRake 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).reject(&:empty?).inject("") do |acc, part| - (acc + File::SEPARATOR + part).tap do |d| + (dir.split(File::SEPARATOR) + ['']).inject do |acc, part| + (acc + File::SEPARATOR).tap do |d| Dir.mkdir(d) unless File.exists? d - end + end + part end end end -- cgit v1.2.3