From d45911f7b86221a698a9ec6306803b0164d4842a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dennis=20G=C3=BCnnewig?= Date: Tue, 9 Sep 2014 09:15:58 +0200 Subject: [PATCH] Add force-option to init --- middleman-core/lib/middleman-core/cli/init.rb | 5 +++++ .../lib/middleman-core/templates/default.rb | 22 +++++++++---------- .../lib/middleman-core/templates/empty.rb | 4 ++-- .../lib/middleman-core/templates/html5.rb | 6 ++--- .../lib/middleman-core/templates/local.rb | 2 +- .../lib/middleman-core/templates/mobile.rb | 6 ++--- 6 files changed, 25 insertions(+), 20 deletions(-) diff --git a/middleman-core/lib/middleman-core/cli/init.rb b/middleman-core/lib/middleman-core/cli/init.rb index d9541161..08b6c4e6 100644 --- a/middleman-core/lib/middleman-core/cli/init.rb +++ b/middleman-core/lib/middleman-core/cli/init.rb @@ -40,6 +40,11 @@ module Middleman::Cli type: :boolean, default: false, desc: 'Skip Git ignores and keeps' + method_option 'force', + type: :boolean, + default: false, + desc: 'Overwrite existing files without any question' + # The init task # @param [String] name def init(name='.') diff --git a/middleman-core/lib/middleman-core/templates/default.rb b/middleman-core/lib/middleman-core/templates/default.rb index 6eea9b44..64d77533 100644 --- a/middleman-core/lib/middleman-core/templates/default.rb +++ b/middleman-core/lib/middleman-core/templates/default.rb @@ -19,17 +19,17 @@ class Middleman::Templates::Default < Middleman::Templates::Base # Actually output the files # @return [void] def build_scaffold! - template 'shared/config.tt', File.join(location, 'config.rb') - copy_file 'default/source/index.html.erb', File.join(location, 'source/index.html.erb') - copy_file 'default/source/layouts/layout.erb', File.join(location, 'source/layouts/layout.erb') - empty_directory File.join(location, 'source', options[:css_dir]) - copy_file 'default/source/stylesheets/all.css', File.join(location, 'source', options[:css_dir], 'all.css') - copy_file 'default/source/stylesheets/normalize.css', File.join(location, 'source', options[:css_dir], 'normalize.css') - empty_directory File.join(location, 'source', options[:js_dir]) - copy_file 'default/source/javascripts/all.js', File.join(location, 'source', options[:js_dir], 'all.js') - empty_directory File.join(location, 'source', options[:images_dir]) - copy_file 'default/source/images/background.png', File.join(location, 'source', options[:images_dir], 'background.png') - copy_file 'default/source/images/middleman.png', File.join(location, 'source', options[:images_dir], 'middleman.png') + template 'shared/config.tt', File.join(location, 'config.rb'), force: options[:force] + copy_file 'default/source/index.html.erb', File.join(location, 'source/index.html.erb'), force: options[:force] + copy_file 'default/source/layouts/layout.erb', File.join(location, 'source/layouts/layout.erb'), force: options[:force] + empty_directory File.join(location, 'source', options[:css_dir]), force: options[:force] + copy_file 'default/source/stylesheets/all.css', File.join(location, 'source', options[:css_dir], 'all.css'), force: options[:force] + copy_file 'default/source/stylesheets/normalize.css', File.join(location, 'source', options[:css_dir], 'normalize.css'), force: options[:force] + empty_directory File.join(location, 'source', options[:js_dir]), force: options[:force] + copy_file 'default/source/javascripts/all.js', File.join(location, 'source', options[:js_dir], 'all.js'), force: options[:force] + empty_directory File.join(location, 'source', options[:images_dir]), force: options[:force] + copy_file 'default/source/images/background.png', File.join(location, 'source', options[:images_dir], 'background.png'), force: options[:force] + copy_file 'default/source/images/middleman.png', File.join(location, 'source', options[:images_dir], 'middleman.png'), force: options[:force] end end diff --git a/middleman-core/lib/middleman-core/templates/empty.rb b/middleman-core/lib/middleman-core/templates/empty.rb index 1ae364c5..58d25693 100644 --- a/middleman-core/lib/middleman-core/templates/empty.rb +++ b/middleman-core/lib/middleman-core/templates/empty.rb @@ -13,8 +13,8 @@ class Middleman::Templates::Empty < Middleman::Templates::Base # Actually output the files # @return [void] def build_scaffold! - create_file File.join(location, 'config.rb'), "\n" - empty_directory File.join(location, 'source') + create_file File.join(location, 'config.rb'), "\n", force: options[:force] + empty_directory File.join(location, 'source'), force: options[:force] end end diff --git a/middleman-core/lib/middleman-core/templates/html5.rb b/middleman-core/lib/middleman-core/templates/html5.rb index 56422032..77b7e544 100644 --- a/middleman-core/lib/middleman-core/templates/html5.rb +++ b/middleman-core/lib/middleman-core/templates/html5.rb @@ -19,9 +19,9 @@ class Middleman::Templates::Html5 < Middleman::Templates::Base # Output the files # @return [void] def build_scaffold! - template 'shared/config.tt', File.join(location, 'config.rb') - directory 'html5/source', File.join(location, 'source') - empty_directory File.join(location, 'source') + template 'shared/config.tt', File.join(location, 'config.rb'), force: options[:force] + directory 'html5/source', File.join(location, 'source'), force: options[:force] + empty_directory File.join(location, 'source'), force: options[:force] end end diff --git a/middleman-core/lib/middleman-core/templates/local.rb b/middleman-core/lib/middleman-core/templates/local.rb index 08d35932..9d8c5594 100644 --- a/middleman-core/lib/middleman-core/templates/local.rb +++ b/middleman-core/lib/middleman-core/templates/local.rb @@ -9,7 +9,7 @@ class Middleman::Templates::Local < Middleman::Templates::Base # Just copy from the template path # @return [void] def build_scaffold! - directory options[:template].to_s, location + directory options[:template].to_s, location, force: options[:force] end end diff --git a/middleman-core/lib/middleman-core/templates/mobile.rb b/middleman-core/lib/middleman-core/templates/mobile.rb index 8137c0dd..ba02cbb2 100644 --- a/middleman-core/lib/middleman-core/templates/mobile.rb +++ b/middleman-core/lib/middleman-core/templates/mobile.rb @@ -14,9 +14,9 @@ class Middleman::Templates::Mobile < Middleman::Templates::Base # Output the files # @return [void] def build_scaffold! - template 'shared/config.tt', File.join(location, 'config.rb') - directory 'mobile/source', File.join(location, 'source') - empty_directory File.join(location, 'source') + template 'shared/config.tt', File.join(location, 'config.rb'), force: options[:force] + directory 'mobile/source', File.join(location, 'source'), force: options[:force] + empty_directory File.join(location, 'source'), force: options[:force] end end