Skip to content

Commit

Permalink
Merge pull request #2150 from bower/feature/analytics
Browse files Browse the repository at this point in the history
Remove analytics from Bower, fixes #1102
  • Loading branch information
sheerun committed Jan 20, 2016
2 parents afe76e5 + 3e3b642 commit fe615fd
Show file tree
Hide file tree
Showing 11 changed files with 65 additions and 397 deletions.
134 changes: 65 additions & 69 deletions bin/bower
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ var bower = require('../lib');
var pkg = require('../package.json');
var cli = require('../lib/util/cli');
var rootCheck = require('../lib/util/rootCheck');
var analytics = require('../lib/util/analytics');

var options;
var renderer;
Expand Down Expand Up @@ -68,85 +67,82 @@ while (options.argv.remain.length) {
options.argv.remain.pop();
}

// Ask for Insights on first run.
analytics.setup(bower.config).then(function () {
// Execute the command
commandFunc = command && mout.object.get(bower.commands, command);
command = command && command.replace(/\./g, ' ');
// Execute the command
commandFunc = command && mout.object.get(bower.commands, command);
command = command && command.replace(/\./g, ' ');

// If no command was specified, show bower help
// Do the same if the command is unknown
if (!commandFunc) {
logger = bower.commands.help();
command = 'help';
// If the user requested help, show the command's help
// Do the same if the actual command is a group of other commands (e.g.: cache)
} else if (options.help || !commandFunc.line) {
logger = bower.commands.help(command);
command = 'help';
// Call the line method
} else {
logger = commandFunc.line(process.argv);

// If no command was specified, show bower help
// Do the same if the command is unknown
if (!commandFunc) {
logger = bower.commands.help();
command = 'help';
// If the user requested help, show the command's help
// Do the same if the actual command is a group of other commands (e.g.: cache)
} else if (options.help || !commandFunc.line) {
// If the method failed to interpret the process arguments
// show the command help
if (!logger) {
logger = bower.commands.help(command);
command = 'help';
// Call the line method
} else {
logger = commandFunc.line(process.argv);

// If the method failed to interpret the process arguments
// show the command help
if (!logger) {
logger = bower.commands.help(command);
command = 'help';
}
}
}

// Get the renderer and configure it with the executed command
renderer = cli.getRenderer(command, logger.json, bower.config);
// Get the renderer and configure it with the executed command
renderer = cli.getRenderer(command, logger.json, bower.config);

function handleLogger(logger, renderer) {
logger
.on('end', function (data) {
if (!bower.config.silent && !bower.config.quiet) {
renderer.end(data);
}
})
.on('error', function (err) {
if (command !== 'help' && err.code === cli.READ_OPTIONS_ERROR_CODE) {
logger = bower.commands.help(command);
renderer = cli.getRenderer('help', logger.json, bower.config);
handleLogger(logger, renderer);
} else {
if (levels.error >= loglevel) {
renderer.error(err);
}

process.exit(1);
}
})
.on('log', function (log) {
if (levels[log.level] >= loglevel) {
renderer.log(log);
function handleLogger(logger, renderer) {
logger
.on('end', function (data) {
if (!bower.config.silent && !bower.config.quiet) {
renderer.end(data);
}
})
.on('error', function (err) {
if (command !== 'help' && err.code === cli.READ_OPTIONS_ERROR_CODE) {
logger = bower.commands.help(command);
renderer = cli.getRenderer('help', logger.json, bower.config);
handleLogger(logger, renderer);
} else {
if (levels.error >= loglevel) {
renderer.error(err);
}
})
.on('prompt', function (prompt, callback) {
renderer.prompt(prompt)
.then(function (answer) {
callback(answer);
});

process.exit(1);
}
})
.on('log', function (log) {
if (levels[log.level] >= loglevel) {
renderer.log(log);
}
})
.on('prompt', function (prompt, callback) {
renderer.prompt(prompt)
.then(function (answer) {
callback(answer);
});
}
});
}

handleLogger(logger, renderer);
handleLogger(logger, renderer);

// Warn if HOME is not SET
if (!userHome) {
logger.warn('no-home', 'HOME environment variable not set. User config will not be loaded.');
}
// Warn if HOME is not SET
if (!userHome) {
logger.warn('no-home', 'HOME environment variable not set. User config will not be loaded.');
}

if (bower.config.interactive) {
var updateNotifier = require('update-notifier');
if (bower.config.interactive) {
var updateNotifier = require('update-notifier');

// Check for newer version of Bower
var notifier = updateNotifier({pkg: pkg});
// Check for newer version of Bower
var notifier = updateNotifier({pkg: pkg});

if (notifier.update && levels.info >= loglevel) {
notifier.notify();
}
if (notifier.update && levels.info >= loglevel) {
notifier.notify();
}
});
}
4 changes: 0 additions & 4 deletions lib/commands/info.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ var mout = require('mout');
var Q = require('q');
var endpointParser = require('bower-endpoint-parser');
var PackageRepository = require('../core/PackageRepository');
var Tracker = require('../util/analytics').Tracker;
var defaultConfig = require('../config');

function info(logger, endpoint, property, config) {
Expand All @@ -12,14 +11,11 @@ function info(logger, endpoint, property, config) {

var repository;
var decEndpoint;
var tracker;

config = defaultConfig(config);
repository = new PackageRepository(config, logger);
tracker = new Tracker(config);

decEndpoint = endpointParser.decompose(endpoint);
tracker.trackDecomposedEndpoints('info', [decEndpoint]);

return Q.all([
getPkgMeta(repository, decEndpoint, property),
Expand Down
4 changes: 0 additions & 4 deletions lib/commands/install.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,23 @@
var endpointParser = require('bower-endpoint-parser');
var Project = require('../core/Project');
var Tracker = require('../util/analytics').Tracker;
var defaultConfig = require('../config');

function install(logger, endpoints, options, config) {
var project;
var decEndpoints;
var tracker;

options = options || {};
config = defaultConfig(config);
if (options.save === undefined) {
options.save = config.defaultSave;
}
project = new Project(config, logger);
tracker = new Tracker(config);

// Convert endpoints to decomposed endpoints
endpoints = endpoints || [];
decEndpoints = endpoints.map(function (endpoint) {
return endpointParser.decompose(endpoint);
});
tracker.trackDecomposedEndpoints('install', decEndpoints);

return project.install(decEndpoints, options, config);
}
Expand Down
5 changes: 0 additions & 5 deletions lib/commands/register.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
var Q = require('q');
var chalk = require('chalk');
var PackageRepository = require('../core/PackageRepository');
var Tracker = require('../util/analytics').Tracker;
var createError = require('../util/createError');
var defaultConfig = require('../config');

function register(logger, name, url, config) {
var repository;
var registryClient;
var tracker;
var force;

config = defaultConfig(config);
force = config.force;
tracker = new Tracker(config);

name = (name || '').trim();
url = (url || '').trim();
Expand All @@ -28,8 +25,6 @@ function register(logger, name, url, config) {
throw createError('Usage: bower register <name> <url>', 'EINVFORMAT');
}

tracker.track('register');

// Attempt to resolve the package referenced by the URL to ensure
// everything is ok before registering
repository = new PackageRepository(config, logger);
Expand Down
4 changes: 0 additions & 4 deletions lib/commands/search.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
var Q = require('q');
var RegistryClient = require('bower-registry-client');
var Tracker = require('../util/analytics').Tracker;
var defaultConfig = require('../config');
var cli = require('../util/cli');

function search(logger, name, config) {
var registryClient;
var tracker;

var json = config ? config.json : undefined;
config = defaultConfig(config);
config.json = config.json || json; // Hack until bower-config is fixed...
config.cache = config.storage.registry;

registryClient = new RegistryClient(config, logger);
tracker = new Tracker(config);
tracker.track('search', name);

if (name) {
return Q.nfcall(registryClient.search.bind(registryClient), name);
Expand Down
5 changes: 0 additions & 5 deletions lib/commands/uninstall.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
var mout = require('mout');
var Q = require('q');
var Project = require('../core/Project');
var Tracker = require('../util/analytics').Tracker;
var defaultConfig = require('../config');

function uninstall(logger, names, options, config) {
Expand All @@ -10,14 +9,10 @@ function uninstall(logger, names, options, config) {
}

var project;
var tracker;

options = options || {};
config = defaultConfig(config);
project = new Project(config, logger);
tracker = new Tracker(config);

tracker.trackNames('uninstall', names);

return project.getTree(options)
.spread(function (tree, flattened) {
Expand Down
6 changes: 0 additions & 6 deletions lib/commands/unregister.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ var Q = require('q');

var defaultConfig = require('../config');
var PackageRepository = require('../core/PackageRepository');
var Tracker = require('../util/analytics').Tracker;
var createError = require('../util/createError');

function unregister(logger, name, config) {
Expand All @@ -14,12 +13,10 @@ function unregister(logger, name, config) {

var repository;
var registryClient;
var tracker;
var force;

config = defaultConfig(config);
force = config.force;
tracker = new Tracker(config);

// Bypass any cache
config.offline = false;
Expand All @@ -30,8 +27,6 @@ function unregister(logger, name, config) {

repository = new PackageRepository(config, logger);

tracker.track('unregister');

if (!config.accessToken) {
return logger.emit('error',
createError('Use "bower login" with collaborator credentials', 'EFORBIDDEN')
Expand Down Expand Up @@ -64,7 +59,6 @@ function unregister(logger, name, config) {
return Q.nfcall(registryClient.unregister.bind(registryClient), name);
})
.then(function (result) {
tracker.track('unregistered');
logger.info('Package unregistered', name);

return result;
Expand Down

0 comments on commit fe615fd

Please sign in to comment.