brew-cli 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. if args.debug:
  53. brew.set_loglevel('DEBUG')
  54. sb_library = brew.StackbrewLibrary(args.repository, args.b)
  55. builder = brew.LocalBuilder(sb_library, args.n.split(','), args.targets)
  56. builder.build_repo_list()
  57. builder.build_all()
  58. if args.push:
  59. builder.push_all()
  60. # summary = brew.build_library(
  61. # args.repository, args.b, args.n, args.push or args.reg is not None,
  62. # args.debug, args.prefill, args.reg, args.targets, None, logger
  63. # )