mirror of
https://github.com/capistrano/capistrano
synced 2023-03-27 23:21:18 -04:00
add before/after to dsl
This commit is contained in:
parent
de6367af4e
commit
ad9da10c32
3 changed files with 42 additions and 3 deletions
29
README.md
29
README.md
|
@ -16,7 +16,7 @@ TODO:
|
||||||
- [x] basic 'capistrano/deploy' noop example
|
- [x] basic 'capistrano/deploy' noop example
|
||||||
- [x] don't care too much about testing at this point (rspec included for my reference)
|
- [x] don't care too much about testing at this point (rspec included for my reference)
|
||||||
|
|
||||||
- [ ] before/after task hooks
|
- [x] before/after task hooks
|
||||||
- [ ] consider requiring default tasks via configuration (strategy?) rather than Capfile
|
- [ ] consider requiring default tasks via configuration (strategy?) rather than Capfile
|
||||||
- [ ] write more default tasks
|
- [ ] write more default tasks
|
||||||
- [ ] handle multiple stage file generation
|
- [ ] handle multiple stage file generation
|
||||||
|
@ -40,3 +40,30 @@ Capify:
|
||||||
$ cap -vT
|
$ cap -vT
|
||||||
|
|
||||||
$ cap deploy
|
$ cap deploy
|
||||||
|
|
||||||
|
## Before / After
|
||||||
|
|
||||||
|
Where calling on the same task name, executed in order of inclusion
|
||||||
|
|
||||||
|
|
||||||
|
# call an existing task
|
||||||
|
before :starting, :ensure_user
|
||||||
|
|
||||||
|
after :finishing, :notify
|
||||||
|
|
||||||
|
|
||||||
|
# or define in block
|
||||||
|
before :starting, :ensure_user do
|
||||||
|
#
|
||||||
|
end
|
||||||
|
|
||||||
|
after :finishing, :notify do
|
||||||
|
#
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,20 @@
|
||||||
module Capistrano
|
module Capistrano
|
||||||
module DSL
|
module DSL
|
||||||
|
|
||||||
|
def before(task, prerequisite, *args, &block)
|
||||||
|
rerequisite = Rake::Task.define_task(prerequisite, *args, &block) if block_given?
|
||||||
|
Rake::Task[task].enhance [prerequisite]
|
||||||
|
end
|
||||||
|
|
||||||
|
def after(task, post_task, *args, &block)
|
||||||
|
post_task = Rake::Task.define_task(post_task, *args, &block) if block_given?
|
||||||
|
Rake::Task[task].enhance do
|
||||||
|
invoke(post_task)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def invoke(task)
|
def invoke(task)
|
||||||
::Rake::Task["deploy:#{task}"].invoke
|
Rake::Task[task].invoke
|
||||||
end
|
end
|
||||||
|
|
||||||
def fetch(key)
|
def fetch(key)
|
||||||
|
|
|
@ -45,7 +45,7 @@ end
|
||||||
desc "Deploy"
|
desc "Deploy"
|
||||||
task :deploy do
|
task :deploy do
|
||||||
%w{starting start update finalize restart finishing finished}.each do |stage|
|
%w{starting start update finalize restart finishing finished}.each do |stage|
|
||||||
invoke stage
|
invoke "deploy:#{stage}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
task default: :deploy
|
task default: :deploy
|
||||||
|
|
Loading…
Reference in a new issue