#!/usr/bin/env ruby gem 'railties' require 'rails/generators' require 'rails/generators/rails/app/app_generator' template_path = File.expand_path('../../templates/refinery/installer.rb', __FILE__) def show_help_message puts "Usage:" puts " refinerycms APP_NAME [options]" puts "" puts "Options:" # Support when running locally relative_path = File.expand_path('../../core/lib/generators/refinery/cms/cms_generator.rb', __FILE__) if File.exist?(relative_path) require relative_path else gem 'refinerycms-core' require 'generators/refinery/cms/cms_generator' end Refinery::CmsGenerator.class_options.each do |raw, option| dasherized = "--#{option.name.to_s.gsub('_', '-')}" dasherized = [option.aliases, "[#{dasherized}]"].flatten.join(', ') if option.aliases.any? puts " #{dasherized}".ljust(28) << "# #{option.description}" end end if ARGV.empty? show_help_message exit 0 end case ARGV.first when "-h", "--help" show_help_message exit 0 when "-v", "--version" puts "Refinery CMS #{Gem.loaded_specs['refinerycms'].version}" exit 0 end application_name = ARGV.shift result = Rails::Generators::AppGenerator.start [application_name, '-m', template_path, '--skip-test-unit'] | ARGV if result && result.include?('Gemfile') note = ["\n=== ACTION REQUIRED ==="] note << "Now you can launch your webserver using:" note << "\ncd #{application_name}" note << "rails server" note << "\nThis will launch the built-in webserver at port 3000." note << "You can now see Refinery running in your browser at http://localhost:3000/refinery" if ARGV.include?('--heroku') note << "\nIf you want files and images to work on Heroku, you will need to setup S3:" note << "heroku config:add S3_BUCKET=XXXXXXXXX S3_KEY=XXXXXXXXX S3_SECRET=XXXXXXXXXX S3_REGION=XXXXXXXXXX" end note << "\nThanks for installing Refinery CMS, we hope you enjoy crafting your application!" note << "---------\n\n" puts note end