aboutsummaryrefslogtreecommitdiffstats
path: root/bin/refinerycms
blob: 263f69929dc3d567a90c70c105014fbeefb4a1b2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/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