Sha256: 0a89a9677fabd3c323afb3343d4c11b8a0ef8750db642d371a1451710bdd449d

Contents?: true

Size: 1.92 KB

Versions: 7

Compression:

Stored size: 1.92 KB

Contents

#!/usr/bin/env ruby

Signal.trap("INT") { puts; exit }

require 'yaml'
require File.dirname(__FILE__) + '/../lib/gamebox/version'

def print_version
  puts "Gamebox #{Gamebox::VERSION::STRING}"
end

def print_usage
  print_version
  puts "Usage:"
  puts "gamebox [opts] game_name"
  puts " -h, --help display this message"
  puts " -v, --version display gamebox version"
end

if %w(--version -v).include? ARGV.first
  print_version
  exit(0)
end
if %w(--help -h).include? ARGV.first
  print_usage
  exit(0)
end
if ARGV.empty?
  print_usage
  exit(0)
end

begin
  # ruby 1.9
  require 'ftools'
  fklass = File
rescue LoadError
  # ruby 1.8
  require 'fileutils'
  fklass = FileUtils
end

PROJECT_NAME = ARGV[0]
TARGET_DIR = File.expand_path(Dir.pwd + "/" + PROJECT_NAME)
SOURCE_DIR = File.expand_path(File.dirname(__FILE__) + "/../lib/gamebox/templates")

Dir.mkdir(TARGET_DIR) unless File.exist?(TARGET_DIR) && File.directory?(TARGET_DIR)

# Generate the directory structure for the new application
# Gems does not pull in empty directories so template_app only
# contains populated directories
Dir.mkdir(TARGET_DIR + "/config")
Dir.mkdir(TARGET_DIR + "/data")
Dir.mkdir(TARGET_DIR + "/data/graphics")
Dir.mkdir(TARGET_DIR + "/data/sounds")
Dir.mkdir(TARGET_DIR + "/data/music")
Dir.mkdir(TARGET_DIR + "/doc")
Dir.mkdir(TARGET_DIR + "/lib")
Dir.mkdir(TARGET_DIR + "/script")
Dir.mkdir(TARGET_DIR + "/src")
Dir.mkdir(TARGET_DIR + "/spec")

Dir.chdir(SOURCE_DIR + "/template_app")
Dir.glob("**/*").each do |file|
  puts "#{file} => #{TARGET_DIR + "/" + file}"
  if File.directory?(file)
    target_dir = TARGET_DIR + "/" + file
    Dir.mkdir(target_dir) unless File.exists? target_dir
  else
    new_file = TARGET_DIR + "/" + file 
    fklass.install file, new_file
    fklass.chmod 0755, new_file if file =~ /script/
  end
end

new_file = TARGET_DIR + "/config/gamebox_generator_version.yml"
File.open(new_file,"w+") do |f|
  f.write Gamebox::VERSION::ARRAY.to_yaml
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
gamebox-0.3.4 bin/gamebox
gamebox-0.3.3 bin/gamebox
gamebox-0.3.2 bin/gamebox
gamebox-0.2.1 bin/gamebox
gamebox-0.1.1 bin/gamebox
gamebox-0.1.0 bin/gamebox
gamebox-0.0.9 bin/gamebox