Sha256: 755ca127e1df8b04657442adaeeb097a3af3b0fef15a232fd3333b0bcad8ba60

Contents?: true

Size: 1.61 KB

Versions: 10

Compression:

Stored size: 1.61 KB

Contents

require 'fileutils'
require 'optparse'
require 'optparse/time'
require 'ostruct'
require 'pp'
require 'erb'

app = ARGV[0]
raise "You must specify a name for this application!" if app.nil?

options = OpenStruct.new
options.orm = false

opts = OptionParser.new do |opts|
  
  opts.on("-o [ORM]") do |v|
    options.orm = v
  end
  
end

opts.parse!(ARGV)

include FileUtils

def create_dir(dir)
  mkdir_p(dir)
  puts "Created: #{dir}"
end

# Create directories:
create_dir(File.join(app, "app", "controllers"))
create_dir(File.join(app, "app", "helpers"))
create_dir(File.join(app, "app", "models"))
create_dir(File.join(app, "app", "views", "default"))
create_dir(File.join(app, "app", "views", "layouts"))
create_dir(File.join(app, "config", "app_config"))
create_dir(File.join(app, "lib", "tasks"))
create_dir(File.join(app, "log"))
create_dir(File.join(app, "public", "images"))
create_dir(File.join(app, "public", "stylesheets"))
create_dir(File.join(app, "public", "javascripts"))
create_dir(File.join(app, "test", "unit"))
create_dir(File.join(app, "test", "functional"))
create_dir(File.join(app, "vendor", "plugins"))

# Copy over templates:
erb_files = Dir.glob(File.join(File.dirname(__FILE__), "templates", "**/*.template"))

erb_files.each do |fl|
  if fl.match("database.yml") && !options.orm
  else
    res = ERB.new(File.open(fl).read).result(binding)
    n = fl.gsub(File.join(File.dirname(__FILE__), "templates"), app).gsub(".template", "")
    File.open(n, "w") {|f| f.puts res}
    puts "Created: #{n}"
  end
end

cp(File.join(File.dirname(__FILE__), "templates", "public", "favicon.ico"), File.join(app, "public", "favicon.ico"))

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
mack-0.0.3 bin/mack
mack-0.0.5 bin/mack
mack-0.0.4 bin/mack
mack-0.0.6.1 bin/mack
mack-0.0.6.2 bin/mack
mack-0.0.6 bin/mack
mack-0.0.7.0 bin/mack
mack-0.1.0 bin/mack
mack-0.2.0 bin/mack
mack-0.2.0.1 bin/mack