2011-08-11 11 views
11

मेरे कैपिस्ट्रानो रेसिपी में, मेरे पास अलग-अलग कार्यों के साथ नामस्थान है:मैं एक अलग नेमस्पेस से कैपिस्ट्रानो कार्य को कैसे ट्रिगर कर सकता हूं: तैनाती?

namespace :mystuff do 
    task :mysetup do; ... end; 
    task :mytask1 do; ... end; 
    task :mytask2 do; ... end; 
    task :mycleanup do; ... end; 
end

ये कस्टमाइज़ किए गए कार्यों को मेरी नुस्खा के शीर्ष पर इस तरह की रेखाओं के माध्यम से ट्रिगर किया जाता है:

after "deploy", "mystuff:mycleanup" 

मैं सामान्य को निष्पादित करना चाहता हूं मेरे नामस्थान के अंदर से capistrano कार्य। उदाहरण के लिए, यदि सामान्य रिलीज फ़ोल्डर्स की एक निश्चित संख्या बनाई गई है, तो मैं सामान्य क्लीनअप कार्य को स्वचालित रूप से ट्रिगर करना चाहता हूं:

task :mycleanup do; 
    if releases.length > 50 
    logger.info "Too many releases, runing deploy:cleanup." 
    deploy:cleanup #***THIS DOESN'T WORK*** 
    end 
end; 

दुर्भाग्यवश deploy:cleanup को कॉल करना मेरे नामस्थान के अंदर से काम नहीं करता है। मैं deploy:cleanup कैसे निष्पादित कर सकता हूं?

उत्तर

16

आह, सही वाक्यविन्यास . का उपयोग करना है, : नहीं। यानी deploy.cleanup, deploy:cleanup नहीं।

यह काम करता है:

task :mycleanup do; 
    if releases.length > 50 
    logger.info "Too many releases, runing deploy:cleanup." 
    deploy.cleanup 
    end 
end; 
संबंधित मुद्दे