Sha256: 3368a9cf80908df667ed3f71bc6c3a961b7124ef280606acde6158baa65b5b34

Contents?: true

Size: 1.8 KB

Versions: 10

Compression:

Stored size: 1.8 KB

Contents

require 'erb'
require 'fileutils'
include FileUtils

if ARGV.length != 1
  STDERR.puts "ERROR: You must give a name for your plugin and directory."
  STDERR.puts "usage:  gpgen name"
  STDERR.puts "example:  gpgen mygemplugin"
  exit 1
end

# setup the required binding variables for erb processing later
project = ARGV.shift
gem_plugin_base = File.expand_path(File.join(File.dirname(__FILE__), ".."))
resources = File.join(gem_plugin_base, "resources")
gem_plugin_version = gem_plugin_base[gem_plugin_base.rindex("-")+1 .. -1]


# make the dir if it don't exist
if not File.exist? project
  puts "Creating directory #{project}"
  mkdir project
else
  puts "Directory #{project} exists, skipping."
end 


# go through all the resource files, erb them, and write them verbatim to output
# do not overwrite if exists already

Dir.glob("#{resources}/**/*") do |infile|
  outfile = File.join(project, infile[resources.length .. -1])
  if File.exist? outfile
    puts "File #{outfile} exists, skipping."
  else
    if File.directory? infile
      puts "Creating directory #{outfile}"
      mkdir_p outfile
    elsif File.file? infile
      puts "Creating file #{outfile}"
      open(infile) do |content|
        template = ERB.new(content.read)
        open(outfile,"w") {|f| f.write(template.result(binding)) }
      end
    else
      puts "!!! Resources contains something not a file or directory."
      puts "Skipping #{infile}."
    end
  end
end

# Finally, move the base init.rb to the right dir 
init_file = File.join(project,"lib",project)
if File.exist? init_file
  puts "File init.rb already exists, skipping."
  puts "WARNING:  There might be a junk '#{project}/lib/project/init.rb' file you can delete."
else
  puts "Creating proper '#{project}/lib/#{project}/init.rb' file"
  mv File.join(project,"lib","project"), init_file
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
merb-core-1.1.3 spec10/public/webrat/test_app/gems/gems/gem_plugin-0.2.3/bin/gpgen
merb-core-1.1.2 spec10/public/webrat/test_app/gems/gems/gem_plugin-0.2.3/bin/gpgen
merb-core-1.1.1 spec10/public/webrat/test_app/gems/gems/gem_plugin-0.2.3/bin/gpgen
merb-core-1.1.0 spec10/public/webrat/test_app/gems/gems/gem_plugin-0.2.3/bin/gpgen
merb-core-1.1.0.rc1 spec10/public/webrat/test_app/gems/gems/gem_plugin-0.2.3/bin/gpgen
merb-core-1.1.0.pre spec10/public/webrat/test_app/gems/gems/gem_plugin-0.2.3/bin/gpgen
gem_plugin-0.2.2 bin/gpgen
gem_plugin-0.2 bin/gpgen
gem_plugin-0.2.1 bin/gpgen
gem_plugin-0.2.3 bin/gpgen