public
Description: A very fast & simple Ruby web server
Homepage: http://code.macournoyer.com/thin/
Clone URL: git://github.com/macournoyer/thin.git
Search Repo:
thin / example / vlad.rake
100644 61 lines (51 sloc) 1.685 kb
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
# $GEM_HOME/gems/vlad-1.2.0/lib/vlad/thin.rb
# Thin tasks for Vlad the Deployer
# By cnantais
require 'vlad'
 
namespace :vlad do
  ##
  # Thin app server
 
  set :thin_address, "127.0.0.1"
  set :thin_command, 'thin'
  set(:thin_conf) { "#{shared_path}/thin_cluster.conf" }
  set :thin_environment, "production"
  set :thin_group, nil
  set :thin_log_file, nil
  set :thin_pid_file, nil
  set :thin_port, nil
  set :thin_socket, "/tmp/thin.sock"
  set :thin_prefix, nil
  set :thin_servers, 2
  set :thin_user, nil
 
  desc "Prepares application servers for deployment. thin
configuration is set via the thin_* variables.".cleanup
 
  remote_task :setup_app, :roles => :app do
    cmd = [
           "#{thin_command} config",
           "-s #{thin_servers}",
           "-S #{thin_socket}",
           "-e #{thin_environment}",
           "-a #{thin_address}",
           "-c #{current_path}",
           "-C #{thin_conf}",
           ("-P #{thin_pid_file}" if thin_pid_file),
           ("-l #{thin_log_file}" if thin_log_file),
           ("--user #{thin_user}" if thin_user),
           ("--group #{thin_group}" if thin_group),
           ("--prefix #{thin_prefix}" if thin_prefix),
           ("-p #{thin_port}" if thin_port),
          ].compact.join ' '
 
    run cmd
  end
 
  def thin(cmd) # :nodoc:
    "#{thin_command} #{cmd} -C #{thin_conf}"
  end
 
  desc "Restart the app servers"
 
  remote_task :start_app, :roles => :app do
    run thin("restart -s #{thin_servers}")
  end
 
  desc "Stop the app servers"
 
  remote_task :stop_app, :roles => :app do
    run thin("stop -s #{thin_servers}")
  end
end