UNPKG

ionic

Version:

A tool for creating and developing Ionic Framework mobile apps.

68 lines (61 loc) 2.44 kB
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var childProcess = require('child_process'); var fs = require('fs'); var path = require('path'); module.exports = function computeCommitId(callback, cachedGitVersion) { if (cachedGitVersion) { callback(cachedGitVersion); return; } var cordovaJSDir = path.join(__dirname, '../../'); //make sure .git directory exists in cordova.js repo if (fs.existsSync(path.join(__dirname, '../../.git'))) { var gitPath = 'git'; var args = 'rev-list HEAD --max-count=1'; childProcess.exec(gitPath + ' ' + args, {cwd:cordovaJSDir}, function(err, stdout, stderr) { var isWindows = process.platform.slice(0, 3) == 'win'; if (err && isWindows) { gitPath = '"' + path.join(process.env['ProgramFiles'], 'Git', 'bin', 'git.exe') + '"'; childProcess.exec(gitPath + ' ' + args, function(err, stdout, stderr) { if (err) { console.warn('Error during git describe: ' + err); done('???'); } else { done(stdout); } }); } else if (err) { console.warn('Error during git describe: ' + err); done('???'); } else { done(stdout); } }); } else { //console.log('no git'); //Can't compute commit ID done('???'); } function done(stdout) { var version = stdout.trim(); cachedGitVersion = version; callback(version); }; }