findup.js 957 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env node
  2. var findup = require('..'),
  3. path = require('path'),
  4. pkg = require('../package'),
  5. program = require('commander'),
  6. options = {},
  7. optionKeys = ['name', 'dir', 'verbose'],
  8. EXIT_FAILURE = -1;
  9. program
  10. .version(pkg.version)
  11. .option('--name <name>', 'The name of the file to find', String)
  12. .option('--dir <dir>', 'The directoy where we will start walking up', process.cwd(), path)
  13. .option('--verbose', 'print log', false, Boolean)
  14. .parse(process.argv);
  15. optionKeys.forEach(function(optionKey){
  16. options[optionKey] = program[optionKey];
  17. });
  18. if(program.args && program.args.length >=1 && !options.name){
  19. options.name = program.args[0];
  20. }
  21. if(!options.name) {
  22. program.outputHelp();
  23. process.exit(EXIT_FAILURE);
  24. }
  25. var file = options.name;
  26. findup(process.cwd(), file, options, function(err, dir){
  27. if(err) return console.error(err.message ? err.message : err);
  28. console.log(path.join(dir, file));
  29. });