2015-02-10 6 views
6

के रूप में सहेजें, मैं अपने जावास्क्रिप्ट प्रोजेक्ट को बनाने/तैनात करने के लिए ग्रंट और ग्रंट-शैल का उपयोग कर रहा हूं।ग्रंट-शैल कमांड आउटपुट को परिवर्तनीय

मैं नवीनतम गिट-प्रतिबद्ध संख्या प्राप्त करना चाहता हूं और इसे एक चर के रूप में संग्रहीत करना चाहता हूं लेकिन यह समझ नहीं सकता कि कैसे। मैंने कॉलबैक करने और वैश्विक चर सेट करने का प्रयास किया है। यह चर लेकिन एक और ब्लॉक के भीतर नहीं से ऐसा लगता है एक समारोह के भीतर प्रयोग करने योग्य है

grunt.initConfig({ 
... 
shell: { 
     getGitCommitNo: { 
     command: 'git rev-parse --short HEAD', 
     options: { 
      callback: function (err, stdout, stderr, cb) { 
       global['gitCommitNo'] = stdout; 
       grunt.log.ok(global.gitCommitNo); 
       cb(); 
      } 
     } 
     }, 
     philTest: { 
     command: 'echo Git Commit No: ' + global.gitCommitNo 
     }, 
... 
} 

आउटपुट:

>> Starting deployment process for version 1.1 in dev environment 

Running "shell:getGitCommitNo" (shell) task 
bfc82a9 
>> bfc82a9 

Running "shell:printTest" (shell) task 
Git Commit No: undefined 

Done, without errors. 

किसी को कैसे मैं एक चर करने के लिए एक कमांड लाइन के उत्पादन में जो प्रयोग करने योग्य है बचत हो सकती है सुझाव दे सकते हैं कृप्या?

+0

सुनिश्चित नहीं हैं कि 'shell' प्लगइन के साथ ऐसा कर सकते हैं, लेकिन आप यदि आवश्यक हो तो यह करने के लिए एक सरल कस्टम मॉड्यूल लिख सकते हैं। – jakerella

उत्तर

10

पाया कि मैं वास्तव में कॉलबैक के अंदर कॉन्फ़िगर चर (वैश्विक की बजाय) का उपयोग कर ऐसा कर सकता हूं। (नीचे पंक्ति नोट भी नई लाइन को हटा देता है)।

grunt.config.set('gitCommitNo', stdout.replace('\n', '')); 

फिर इस का उपयोग करके पहुँचा जा सकता है:

<%=gitCommitNo%> 
+0

इसे एक सही उत्तर के रूप में चिह्नित किया जाना चाहिए। इसके लिए बहुत - बहुत धन्यवाद। –

+0

नोट: मुझे अपनी ग्रंट फ़ाइल के शीर्ष पर 'grunt.loadNpmTasks (' grunt-shell ')' रखना था, ** ** 'grunt.initConfig ({... ', इसके लिए काम करने के लिए –

संबंधित मुद्दे