diff --git a/README.md b/README.md index 9856ea68..548aac79 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,12 @@ For command line help, visit our wiki page on Neat’s [command line interface]( neat install ``` + **Pro Tip:** You can target installation into a specific directory using the `path` flag: + + ```bash + neat install --path my/custom/path/ + ``` + 4. Import Neat in your stylesheet: ```scss diff --git a/lib/neat/generator.rb b/lib/neat/generator.rb index 417bef4f..f79ec432 100644 --- a/lib/neat/generator.rb +++ b/lib/neat/generator.rb @@ -7,16 +7,18 @@ class Generator < Thor map ["-v", "--version"] => :version desc "install", "Install Neat into your project" + method_options :path => :string, :force => :boolean def install - if neat_files_already_exist? + if neat_files_already_exist? && !options[:force] puts "Neat files already installed, doing nothing." else install_files - puts "Neat files installed to neat/" + puts "Neat files installed to #{install_path}/" end end desc "update", "Update Neat" + method_options :path => :string def update if neat_files_already_exist? remove_neat_directory @@ -28,6 +30,7 @@ def update end desc "remove", "Remove Neat" + method_options :path => :string def remove if neat_files_already_exist? remove_neat_directory @@ -45,16 +48,32 @@ def version private def neat_files_already_exist? - File.directory?("neat") + install_path.exist? end - def install_files - FileUtils.mkdir_p("neat") - FileUtils.cp_r(all_stylesheets, "neat/") + def install_path + @install_path ||= if options[:path] + Pathname.new(File.join(options[:path], 'neat')) + else + Pathname.new('neat') + end end def remove_neat_directory - FileUtils.rm_rf("neat") + FileUtils.rm_rf(install_path) + end + + def install_files + make_install_directory + copy_in_scss_files + end + + def make_install_directory + FileUtils.mkdir_p(install_path) + end + + def copy_in_scss_files + FileUtils.cp_r(all_stylesheets, install_path) end def all_stylesheets