mirror of
https://github.com/appium/appium.git
synced 2026-05-21 03:08:54 -05:00
methods for determining and setting git rev for appium; include in /status
fix #612
This commit is contained in:
@@ -17,6 +17,8 @@ var path = require('path')
|
||||
, generateServerDocs = gruntHelpers.generateServerDocs
|
||||
, generateAppiumIo = gruntHelpers.generateAppiumIo
|
||||
, setDeviceConfigVer = gruntHelpers.setDeviceConfigVer
|
||||
, setGitRev = gruntHelpers.setGitRev
|
||||
, getGitRev = require('./app/helpers').getGitRev
|
||||
, runTestsWithServer = gruntHelpers.runTestsWithServer;
|
||||
|
||||
module.exports = function(grunt) {
|
||||
@@ -160,4 +162,15 @@ module.exports = function(grunt) {
|
||||
grunt.registerTask('setConfigVer', function(device) {
|
||||
setDeviceConfigVer(grunt, device, this.async());
|
||||
});
|
||||
grunt.registerTask('setGitRev', function(rev) {
|
||||
var done = this.async();
|
||||
if (typeof rev === "undefined") {
|
||||
getGitRev(function(err, rev) {
|
||||
if (err) throw err;
|
||||
setGitRev(grunt, rev, done);
|
||||
});
|
||||
} else {
|
||||
setGitRev(grunt, rev, done);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
+7
-3
@@ -7,6 +7,7 @@ var status = require('./uiauto/lib/status')
|
||||
, swig = require('swig')
|
||||
, path = require('path')
|
||||
, version = require('../package.json').version
|
||||
, getGitRev = require('./helpers.js').getGitRev
|
||||
, _ = require('underscore');
|
||||
|
||||
function getResponseHandler(req, res) {
|
||||
@@ -143,9 +144,12 @@ exports.sessionBeforeFilter = function(req, res, next) {
|
||||
|
||||
exports.getStatus = function(req, res) {
|
||||
// Return a static JSON object to the client
|
||||
respondSuccess(req, res, {
|
||||
build: {version: version}
|
||||
});
|
||||
var gitSha = req.appium.serverConfig['git-sha'];
|
||||
var data = {build: {version: version}};
|
||||
if (typeof gitSha !== "undefined") {
|
||||
data.build.revision = gitSha;
|
||||
}
|
||||
respondSuccess(req, res, data);
|
||||
};
|
||||
|
||||
exports.createSession = function(req, res) {
|
||||
|
||||
+13
-7
@@ -137,13 +137,15 @@ module.exports.tail = function(grunt, filename, cb) {
|
||||
};
|
||||
|
||||
module.exports.setDeviceConfigVer = function(grunt, device, cb) {
|
||||
var value = {version: appiumVer};
|
||||
exports.writeConfigKey(grunt, device, value, cb);
|
||||
};
|
||||
|
||||
module.exports.writeConfigKey = function(grunt, key, value, cb) {
|
||||
var configPath = path.resolve(__dirname, '.appiumconfig');
|
||||
fs.readFile(configPath, function(err, data) {
|
||||
var writeVer = function(config) {
|
||||
if (typeof config[device] === "undefined") {
|
||||
config[device] = {};
|
||||
}
|
||||
config[device].version = appiumVer;
|
||||
var writeConfig = function(config) {
|
||||
config[key] = value;
|
||||
grunt.log.write("\n");
|
||||
grunt.log.write(JSON.stringify(config));
|
||||
fs.writeFile(configPath, JSON.stringify(config), cb);
|
||||
@@ -151,14 +153,18 @@ module.exports.setDeviceConfigVer = function(grunt, device, cb) {
|
||||
if (err) {
|
||||
grunt.log.write("Config file doesn't exist, creating it");
|
||||
var config = {};
|
||||
writeVer(config);
|
||||
writeConfig(config);
|
||||
} else {
|
||||
grunt.log.write("Config file exists, updating it");
|
||||
writeVer(JSON.parse(data.toString('utf8')));
|
||||
writeConfig(JSON.parse(data.toString('utf8')));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
module.exports.setGitRev = function(grunt, rev, cb) {
|
||||
exports.writeConfigKey(grunt, "git-sha", rev, cb);
|
||||
};
|
||||
|
||||
module.exports.authorize = function(grunt, cb) {
|
||||
// somewhat messily ported from penguinho's authorize.py
|
||||
var authFile = '/etc/authorization';
|
||||
|
||||
@@ -59,6 +59,8 @@ reset_general() {
|
||||
run_cmd sudo npm install .
|
||||
fi
|
||||
run_cmd mkdir -p build
|
||||
echo "* Setting git revision data"
|
||||
run_cmd $grunt setGitRev
|
||||
}
|
||||
|
||||
reset_ios() {
|
||||
|
||||
@@ -8,6 +8,7 @@ var http = require('http')
|
||||
, bodyParser = require('./middleware').parserWrap
|
||||
, status = require('./app/uiauto/lib/status')
|
||||
, appiumVer = require('./package.json').version
|
||||
, appiumRev = null
|
||||
, async = require('async')
|
||||
, _ = require("underscore")
|
||||
, parser = require('./app/parser')
|
||||
@@ -89,8 +90,10 @@ var main = function(args, readyCb, doneCb) {
|
||||
}
|
||||
var versionMismatches = {};
|
||||
_.each(rawConfig, function(deviceConfig, key) {
|
||||
if (deviceConfig.version !== appiumVer) {
|
||||
if (deviceConfig.version !== appiumVer && key !== "git-sha") {
|
||||
versionMismatches[key] = deviceConfig.version;
|
||||
} else if (key === "git-sha") {
|
||||
appiumRev = rawConfig['git-sha'];
|
||||
}
|
||||
});
|
||||
if (_.keys(versionMismatches).length) {
|
||||
@@ -127,6 +130,11 @@ var main = function(args, readyCb, doneCb) {
|
||||
var startListening = function(cb) {
|
||||
var alreadyReturned = false;
|
||||
server.listen(args.port, args.address, function() {
|
||||
var welcome = "Welcome to Appium v" + appiumVer;
|
||||
if (appiumRev) {
|
||||
welcome += " (REV " + appiumRev + ")";
|
||||
}
|
||||
logger.info(welcome.cyan);
|
||||
var logMessage = "Appium REST http interface listener started on " +
|
||||
args.address + ":" + args.port;
|
||||
logger.info(logMessage.cyan);
|
||||
|
||||
Reference in New Issue
Block a user