mirror of https://github.com/docker/docs.git
67 lines
1.5 KiB
JavaScript
67 lines
1.5 KiB
JavaScript
var remote = require('remote');
|
|
var app = remote.require('app');
|
|
var crypto = require('crypto');
|
|
var uuid = require('node-uuid');
|
|
var level = require('levelup');
|
|
var path = require('path');
|
|
var db = level(path.join(process.env[(process.platform === 'win32') ? 'USERPROFILE' : 'HOME'], 'Library/Application Support/Kitematic/data', 'db'));
|
|
|
|
Metrics = {};
|
|
|
|
Metrics.enable = function () {
|
|
db.put('metrics.enabled', true);
|
|
};
|
|
|
|
Metrics.disable = function () {
|
|
db.put('metrics.enabled', false);
|
|
};
|
|
|
|
Metrics.enabled = function (callback) {
|
|
db.get('metrics.enabled', function (err, value) {
|
|
if (err) {
|
|
callback(false);
|
|
} else {
|
|
callback(value);
|
|
}
|
|
});
|
|
};
|
|
|
|
Metrics.trackEvent = function (name) {
|
|
if (!name) {
|
|
return;
|
|
}
|
|
db.get('metrics.enabled', function (err, value) {
|
|
if (err || !value) {
|
|
return;
|
|
}
|
|
db.get('metrics.uuid', function (err, uuid) {
|
|
if (err) {
|
|
return;
|
|
}
|
|
mixpanel.track(name, {
|
|
distinct_id: uuid,
|
|
version: app.getVersion(),
|
|
product: 'Docker GUI'
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
Metrics.prepareTracking = function () {
|
|
db.get('metrics.enabled', function (err, value) {
|
|
if (err && err.notFound) {
|
|
var settings = Settings.findOne();
|
|
if (settings && settings.tracking) {
|
|
db.put('metrics.enabled', !!settings.tracking);
|
|
} else {
|
|
db.put('metrics.enabled', true);
|
|
}
|
|
}
|
|
db.get('metrics.uuid', function (err, value) {
|
|
if (err && err.notFound) {
|
|
db.put('metrics.uuid', uuid.v4());
|
|
}
|
|
});
|
|
});
|
|
};
|