Grunt-shell сохранить вывод команды как переменную

Я использую Grunt и Grunt-shell для создания / развертывания моего проекта Javascript.

Я хочу получить последний номер git-commit и сохранить его как переменную, но не могу понять, как это сделать. Я попытался выполнить обратный вызов и установить глобальную переменную. Эта переменная может использоваться внутри функции, но не из другого блока, кажется

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.

может кто-нибудь подсказать, как я могу сохранить вывод командной строки переменной можно использовать?

1 ответов


обнаружил, что я действительно могу сделать это, используя переменную конфигурации (вместо глобальной) внутри обратного вызова. (Примечание ниже строка также удаляет новую строку).

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

тогда это можно получить с помощью:

<%=gitCommitNo%>