brew-cli 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/env python
  2. import argparse
  3. import logging
  4. import sys
  5. try:
  6. import brew
  7. except ImportError as e:
  8. print str(e)
  9. print 'Please install the required dependencies first'
  10. print 'sudo pip install -r requirements.txt'
  11. sys.exit(1)
  12. logger = logging.getLogger(__name__)
  13. logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',
  14. level='INFO')
  15. if __name__ == '__main__':
  16. parser = argparse.ArgumentParser('Build the docker standard library')
  17. parser.add_argument(
  18. '--push', action='store_true', default=False,
  19. help='Push generated repositories'
  20. )
  21. parser.add_argument(
  22. '--debug', default=False, action='store_true',
  23. help='Enable debugging output'
  24. )
  25. parser.add_argument(
  26. '--noprefill', default=True, action='store_false',
  27. dest='prefill', help='Disable cache prefill'
  28. )
  29. parser.add_argument(
  30. '-n', metavar='NAMESPACE', default='library',
  31. help='Namespace used for generated repositories. Default is library'
  32. )
  33. parser.add_argument(
  34. '-b', metavar='BRANCH', default=brew.DEFAULT_BRANCH,
  35. help='Branch in the repository where the library definition'
  36. ' files will be fetched. Default is ' + brew.DEFAULT_BRANCH
  37. )
  38. parser.add_argument(
  39. 'repository', default=brew.DEFAULT_REPOSITORY,
  40. nargs='?', help='git repository containing the library definition'
  41. ' files. Default is ' + brew.DEFAULT_REPOSITORY
  42. )
  43. parser.add_argument(
  44. '--reg', default=None, help='Registry address to'
  45. ' push build results to. Also sets push to true.'
  46. )
  47. parser.add_argument(
  48. '--targets', default=None, help='Comma-separated list'
  49. ' of images to build.'
  50. )
  51. args = parser.parse_args()
  52. summary = brew.build_library(
  53. args.repository, args.b, args.n, args.push or args.reg is not None,
  54. args.debug, args.prefill, args.reg, args.targets, None, logger
  55. )
  56. sys.exit(summary.exit_code())