middleman/middleman-cli/lib/middleman-cli/extension.rb
Thomas Reynolds f16510d034 Update CLI
2015-01-04 14:23:35 -06:00

43 lines
1.4 KiB
Ruby

# CLI Module
module Middleman::Cli
# A thor task for creating new projects
class Extension < Thor::Group
include Thor::Actions
check_unknown_options!
# Required path for the new project to be generated
argument :name, type: :string
# Template files are relative to this file
# @return [String]
def self.source_root
File.join(File.dirname(__FILE__), 'templates')
end
class_option 'skip-git',
type: :boolean,
default: false,
desc: 'Skip Git ignores and keeps'
# Output a .gitignore file
class_option :git, type: :boolean, default: true
# The extension task
# @param [String] name
def extension
copy_file 'extension/gitignore', File.join(name, '.gitignore') unless options[:'skip-git']
template 'extension/Rakefile', File.join(name, 'Rakefile')
template 'extension/gemspec', File.join(name, "#{name}.gemspec")
template 'extension/Gemfile', File.join(name, 'Gemfile')
template 'extension/lib/middleman_extension.rb', File.join(name, 'lib', 'middleman_extension.rb')
template 'extension/lib/lib.rb', File.join(name, 'lib', "#{name}.rb")
template 'extension/features/support/env.rb', File.join(name, 'features', 'support', 'env.rb')
empty_directory File.join(name, 'fixtures')
end
# Add to CLI
Base.register(self, 'extension', 'extension [options]', 'Create a new Middleman extension')
end
end