Class: DaemonizeRails::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/daemonize_rails/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#installObject



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
# File 'lib/generators/daemonize_rails/install_generator.rb', line 8

def install
  app_path = Dir.pwd
  # if app_path[/^\/var\/www\/[a-zA-Z0-9\-_.]+/] != app_path
  #   raise "Folder check invalid. Please put you Rails project in \"/var/www\""
  # end
  app_name = Dir.pwd[/[A-Za-z0-9_.-]*?(\/|)$/].gsub("/","")

  unicorn_binding = DaemonizeRails::UnicornConfig.new(app_name, 4).get_binding
  init_binding = DaemonizeRails::InitConfig.new(app_name, `echo $PATH`.chomp).get_binding

  unicorn = DaemonizeRails::Unicorn.new(unicorn_binding, app_name)
  init = DaemonizeRails::Init.new(init_binding, app_name)

  create_file "config/unicorn.rb" do
    "#{unicorn.make_config_file}"
  end

  init.make_config_file
  print "\e[1;32m      create\e[0m  /etc/init.d/"
  print app_name
  print "\n"

  if ENV["USER"] != "root"
    command_pre = "sudo -p 'You don't have permissions to update init! Enter sudo password: ' "
  else
    command_pre = ""
  end
  commands = ["chmod 755 ./config/unicorn.rb",
      "chmod 755 /etc/init.d/#{app_name}",
      "chmod +x /etc/init.d/#{app_name}",
      "update-rc.d #{app_name} defaults"]
  commands.each do |command|
    system command_pre + command
  end
end