def main(sysargs=None): parser = get_parser() parser = add_global_arguments(parser) # List the generators generator_names = list_generators() # Create the generators generators = create_generators(generator_names) # Setup a subparser for each generator create_subparsers(parser, generators.values()) args = parser.parse_args(sysargs) handle_global_arguments(args) generator = generators[args.generator] # Run the generator that was selected in a clone # The clone protects the release repo state from mid change errors with log_prefix('[git-bloom-generate {0}]: '.format(generator.title)): git_clone = GitClone() try: with git_clone: ret = run_generator(generator, args) if ret > 0: return ret git_clone.commit() return ret except GeneratorError as err: return err.retcode
def main(sysargs=None): parser = get_parser() parser = add_global_arguments(parser) # List the generators generator_names = list_generators() # Create the generators generators = create_generators(generator_names) # Setup a subparser for each generator create_subparsers(parser, generators.values()) args = parser.parse_args(sysargs) handle_global_arguments(args) generator = generators[args.generator] # Check that the current directory is a serviceable git/bloom repo try: ensure_clean_working_env() ensure_git_root() except SystemExit: parser.print_usage() raise # Run the generator that was selected in a clone # The clone protects the release repo state from mid change errors with log_prefix('[git-bloom-generate {0}]: '.format(generator.title)): git_clone = GitClone() with git_clone: run_generator(generator, args) git_clone.commit()
def main(sysargs=None): parser = get_argument_parser() parser = add_global_arguments(parser) args = parser.parse_args(sysargs) handle_global_arguments(args) # Check that the current directory is a serviceable git/bloom repo try: ensure_clean_working_env() ensure_git_root() except SystemExit: parser.print_usage() raise git_clone = GitClone() with git_clone: import_upstream( args.archive_path, args.patches_path, args.release_version, args.name, args.replace) git_clone.commit() info("I'm happy. You should be too.")
def main(sysargs=None): from bloom.config import upconvert_bloom_to_config_branch upconvert_bloom_to_config_branch() # Check that the current directory is a serviceable git/bloom repo ensure_clean_working_env() ensure_git_root() # Get tracks tracks_dict = get_tracks_dict_raw() if not tracks_dict['tracks']: error( "No tracks configured, first create a track with " "'git-bloom-config new <track_name>'", exit=True) # Do argparse stuff parser = get_argument_parser([str(t) for t in tracks_dict['tracks']]) parser = add_global_arguments(parser) args = parser.parse_args(sysargs) handle_global_arguments(args) os.environ['BLOOM_TRACK'] = args.track verify_track(args.track, tracks_dict['tracks'][args.track]) git_clone = GitClone() with git_clone: quiet_git_clone_warning(True) disable_git_clone(True) execute_track(args.track, tracks_dict['tracks'][args.track], args.release_increment, args.pretend, args.debug, args.unsafe, interactive=args.interactive) disable_git_clone(False) quiet_git_clone_warning(False) git_clone.commit() # Notify the user of success and next action suggestions info('\n\n', use_prefix=False) warning("Tip: Check to ensure that the debian tags created have the same " "version as the upstream version you are releasing.") info( fmt("@{gf}@!Everything went as expected, " "you should check that the new tags match your expectations, and " "then push to the release repo with:@|")) info( fmt(" git push --all && git push --tags " "@{kf}@!# You might have to add --force to the second command if you " "are over-writing existing tags"))
def execute_generator(generator, arguments): # Run the generator that was selected in a clone # The clone protects the release repo state from mid change errors with log_prefix('[git-bloom-generate {0}]: '.format(generator.title)): git_clone = GitClone() try: with git_clone: ret = run_generator(generator, arguments) if ret > 0: return ret git_clone.commit() return ret except GeneratorError as err: return err.retcode
def main(sysargs=None): from bloom.config import upconvert_bloom_to_config_branch upconvert_bloom_to_config_branch() # Check that the current directory is a serviceable git/bloom repo ensure_clean_working_env() ensure_git_root() # Get tracks tracks_dict = get_tracks_dict_raw() if not tracks_dict['tracks']: error("No tracks configured, first create a track with " "'git-bloom-config new <track_name>'", exit=True) # Do argparse stuff parser = get_argument_parser([str(t) for t in tracks_dict['tracks']]) parser = add_global_arguments(parser) args = parser.parse_args(sysargs) handle_global_arguments(args) os.environ['BLOOM_TRACK'] = args.track verify_track(args.track, tracks_dict['tracks'][args.track]) git_clone = GitClone() with git_clone: quiet_git_clone_warning(True) disable_git_clone(True) execute_track(args.track, tracks_dict['tracks'][args.track], args.release_increment, args.pretend, args.debug, args.unsafe) disable_git_clone(False) quiet_git_clone_warning(False) git_clone.commit() # Notify the user of success and next action suggestions info('\n\n', use_prefix=False) warning("Tip: Check to ensure that the debian tags created have the same " "version as the upstream version you are releasing.") info(fmt("@{gf}@!Everything went as expected, " "you should check that the new tags match your expectations, and " "then push to the release repo with:@|")) info(fmt(" git push --all && git push --tags " "@{kf}@!# You might have to add --force to the second command if you " "are over-writing existing tags"))
from bloom.git import GitClone from bloom.git import inbranch from bloom.git import has_changes from bloom.util import execute_command from bloom.util import maybe_continue print("Generating github pages documentation for version '{0}'...".format(ver)) execute_command('make clean', cwd='doc') execute_command('python setup.py build_sphinx') execute_command('sphinxtogithub doc/build/html --verbose') orig_cwd = os.getcwd() clone = GitClone() with clone as clone_dir: execute_command('git clean -fdx') with inbranch('gh-pages'): doc_dir = os.path.join('doc', ver) if os.path.exists(doc_dir): warning("Documentation for version '" + ver + "' already exists.") if not maybe_continue('y'): sys.exit(-1) execute_command('git rm -rf ' + doc_dir) shutil.copytree(os.path.join(orig_cwd, 'doc', 'build', 'html'), doc_dir) p = re.compile('\d*[.]\d*[.]\d*') with open('doc/index.html', 'r') as f: redirect = f.read() redirect = p.sub(ver, redirect)