class DaemonizeRails::Generators::InstallGenerator

Public Instance Methods

install() click to toggle source
# 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