search.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. var Q = require('q');
  2. var RegistryClient = require('bower-registry-client');
  3. var cli = require('../util/cli');
  4. var Tracker = require('../util/analytics').Tracker;
  5. var defaultConfig = require('../config');
  6. function search(logger, name, config) {
  7. var registryClient;
  8. var tracker;
  9. config = defaultConfig(config);
  10. config.cache = config.storage.registry;
  11. registryClient = new RegistryClient(config, logger);
  12. tracker = new Tracker(config);
  13. tracker.track('search', name);
  14. // If no name was specified, list all packages
  15. if (!name) {
  16. return Q.nfcall(registryClient.list.bind(registryClient));
  17. // Otherwise search it
  18. } else {
  19. return Q.nfcall(registryClient.search.bind(registryClient), name);
  20. }
  21. }
  22. // -------------------
  23. search.line = function (logger, argv) {
  24. var options = cli.readOptions(argv);
  25. var name = options.argv.remain.slice(1).join(' ');
  26. return search(logger, name, options);
  27. };
  28. search.completion = function () {
  29. // TODO:
  30. };
  31. module.exports = search;