lib/bivouac/template.rb in bivouac-0.0.1 vs lib/bivouac/template.rb in bivouac-0.0.2
- old
+ new
@@ -1,25 +1,68 @@
require 'erb'
module Bivouac
module Template
def createDir( dirname )
- puts "\tcreate #{dirname}"
- FileUtils::mkdir_p( "#{dirname}" )
+ if File.exist?( dirname )
+ puts "\tskip #{File.expand_path( dirname )}: already exist"
+ else
+ puts "\tcreate #{File.expand_path( dirname )}"
+ FileUtils::mkdir_p( "#{dirname}" )
+ end
end
- def createFile( filename, chmod_x = false, &block )
- puts "\tcreate #{filename}"
- open( "#{filename}", "w" ) { |io|
- yield( io )
- }
- FileUtils::chmod 0755, filename if chmod_x
+ def createFile( filename, chmod_x = false, force_create_if_existe = nil, &block )
+ create_ok = false
+
+ if force_create_if_existe.nil?
+ if File.exist?( filename )
+ print "\toverwrite #{File.expand_path( filename )}? [Yn] "
+ r = $stdin.gets.chomp
+ if r == "Y" or r == "y" or r == ""
+ puts "\tforce #{File.expand_path( filename )}"
+ create_ok = true
+ else
+ puts "\tskip #{File.expand_path( filename )}: already exist"
+ create_ok = false
+ end
+ else
+ puts "\tcreate #{File.expand_path( filename )}"
+ create_ok = true
+ end
+ elsif force_create_if_existe == false
+ if File.exist?( filename )
+ puts "\tskip #{File.expand_path( filename )}: already exist"
+ create_ok = false
+ else
+ puts "\tcreate #{File.expand_path( filename )}"
+ create_ok = true
+ end
+ elsif force_create_if_existe == true
+ if File.exist?( filename )
+ puts "\tforce #{File.expand_path( filename )}"
+ else
+ puts "\tcreate #{File.expand_path( filename )}"
+ end
+ create_ok = true
+ end
+
+ if create_ok == true
+ open( "#{filename}", "w" ) { |io|
+ yield( io )
+ }
+ FileUtils::chmod 0755, filename if chmod_x
+ end
end
def copyTemplate( file, dest )
- puts "\tcreate #{dest}"
- src = File.dirname(__FILE__) + "/template/" + file
- FileUtils::cp( src, dest )
+ if File.exist?( dest + "/" + file )
+ puts "\tskip #{File.expand_path( dest + "/" + file )}: already exist"
+ else
+ puts "\tcreate #{File.expand_path( dest )}"
+ src = File.dirname(__FILE__) + "/template/" + file
+ FileUtils::cp( src, dest )
+ end
end
def template( template_name, b = nil )
template_file = File.dirname(__FILE__) + "/template/" + template_name + ".rb"
result = if b.nil?
\ No newline at end of file