dsl.rb
1.37 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
62
63
64
require 'etc'
require 'capistrano/dsl/task_enhancements'
require 'capistrano/dsl/paths'
require 'capistrano/dsl/stages'
require 'capistrano/dsl/env'
require 'capistrano/configuration/filter'
module Capistrano
module DSL
include TaskEnhancements
include Env
include Paths
include Stages
def invoke(task, *args)
Rake::Task[task].invoke(*args)
end
def t(key, options={})
I18n.t(key, options.merge(scope: :capistrano))
end
def scm
fetch(:scm)
end
def sudo(*args)
execute :sudo, *args
end
def revision_log_message
fetch(:revision_log_message,
t(:revision_log_message,
branch: fetch(:branch),
user: local_user,
sha: fetch(:current_revision),
release: fetch(:release_timestamp))
)
end
def rollback_log_message
t(:rollback_log_message, user: local_user, release: fetch(:rollback_timestamp))
end
def local_user
fetch(:local_user)
end
def lock(locked_version)
VersionValidator.new(locked_version).verify
end
def on(hosts, options={}, &block)
subset_copy = Marshal.dump(Configuration.env.filter(hosts))
SSHKit::Coordinator.new(Marshal.load(subset_copy)).each(options, &block)
end
def run_locally(&block)
SSHKit::Backend::Local.new(&block).run
end
end
end
self.extend Capistrano::DSL