select-locate 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/python
  2. # PYTHON_ARGCOMPLETE_OK
  3. import osex.locate
  4. import sys
  5. import locale
  6. import argparse
  7. import argcomplete
  8. import ioex.cursesex
  9. def _init_argparser():
  10. argparser = argparse.ArgumentParser(description = None)
  11. argparser.add_argument('--database-path')
  12. argparser.add_argument('--ignore-case', action='store_true')
  13. argparser.add_argument('--match-all', action='store_true')
  14. argparser.add_argument('--multiple', action='store_true')
  15. argparser.add_argument('--update-database', action='store_true')
  16. argparser.add_argument('--update-require-visibility', choices = ['yes', 'no'])
  17. argparser.add_argument('patterns', metavar = 'pattern', nargs = '+')
  18. return argparser
  19. def main(argv):
  20. argparser = _init_argparser()
  21. argcomplete.autocomplete(argparser)
  22. args = argparser.parse_args(argv)
  23. params = vars(args)
  24. if args.update_require_visibility == 'yes':
  25. args.update_require_visibility = True
  26. elif args.update_require_visibility == 'no':
  27. args.update_require_visibility = False
  28. paths = ioex.cursesex.tty_wrapper(osex.locate.locate_select, **vars(args))
  29. if paths is None:
  30. return 1
  31. else:
  32. print('\n'.join(paths).encode(locale.getpreferredencoding()))
  33. return 0
  34. if __name__ == "__main__":
  35. sys.exit(main(sys.argv[1:]))