38 lines
1.5 KiB
Ruby
Executable file
38 lines
1.5 KiB
Ruby
Executable file
#!/usr/bin/env ruby
|
|
require File.join(File.dirname(File.dirname(__FILE__)), 'lib', 'middleman')
|
|
require "thor"
|
|
require "thor/group"
|
|
|
|
module Middleman
|
|
class Generator < ::Thor::Group
|
|
include Thor::Actions
|
|
|
|
argument :location, :type => :string, :desc => "New project location"
|
|
|
|
class_option :template, :aliases => "-T", :default => "default", :desc => 'Optionally use a pre-defined project template: html5, default'
|
|
|
|
def self.source_root
|
|
File.join(File.dirname(__FILE__), '..', 'lib', 'middleman', 'templates')
|
|
end
|
|
|
|
class_option :css_dir, :default => "stylesheets", :desc => 'The path to the css files'
|
|
class_option :js_dir, :default => "javascripts", :desc => 'The path to the javascript files'
|
|
class_option :images_dir, :default => "images", :desc => 'The path to the image files'
|
|
|
|
def create_project
|
|
if options[:template] == "html5"
|
|
template "html5boilerplate/config.tt", File.join(location, "config.rb")
|
|
directory "html5boilerplate/public", File.join(location, "public")
|
|
empty_directory File.join(location, "views")
|
|
else
|
|
template "default/config.tt", File.join(location, "config.rb")
|
|
directory "default/views", File.join(location, "views")
|
|
empty_directory File.join(location, "public", options[:css_dir])
|
|
empty_directory File.join(location, "public", options[:js_dir])
|
|
empty_directory File.join(location, "public", options[:images_dir])
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
Middleman::Generator.start
|