wilson (owner)

Revisions

  • 669ba1 Tue Sep 30 13:30:26 -0700 2008
gist: 13938 Download_button fork
public
Public Clone URL: git://gist.github.com/13938.git
Embed All Files: show embed
Text #
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
  ##
  # Sets all the default values. Should only be called once. Use reset
  # if you need to restore values.
 
  def self.set_defaults
    @@default_env ||= {}
    self.reset
 
    mandatory :repository, "repository path"
    mandatory :deploy_to, "deploy path"
    mandatory :domain, "server domain"
 
    simple_set(:deploy_timestamped, true,
               :deploy_via, :export,
               :keep_releases, 5,
               :migrate_args, "",
               :migrate_target, :latest,
               :rails_env, "production",
               :rake_cmd, "rake",
               :revision, "head",
               :rsync_cmd, "rsync",
               :rsync_flags, ['-azP', '--delete'],
               :ssh_cmd, "ssh",
               :ssh_flags, [],
               :sudo_cmd, "sudo",
               :sudo_flags, nil,
               :umask, '02')
 
    set(:current_release) { File.join(releases_path, releases[-1]) }
    set(:latest_release) { deploy_timestamped ?release_path: current_release }
    set(:previous_release) { File.join(releases_path, releases[-2]) }
    set(:release_name) { Time.now.utc.strftime("%Y%m%d%H%M%S") }
    set(:release_path) { File.join(releases_path, release_name) }
    set(:releases) { task.run("ls -x #{releases_path}").split.sort }
 
    set_path :current_path, "current"
    set_path :releases_path, "releases"
    set_path :scm_path, "scm"
    set_path :shared_path, "shared"
 
    set(:sudo_password) do
      state = `stty -g`
 
      raise Vlad::Error, "stty(1) not found" unless $?.success?
 
      begin
        system "stty -echo"
        $stdout.print "sudo password: "
        $stdout.flush
        sudo_password = $stdin.gets
        $stdout.puts
      ensure
        system "stty #{state}"
      end
      sudo_password
    end
  end