Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove analytics from Bower, fixes #1102 #2150

Merged
merged 1 commit into from
Jan 20, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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