def main(): args = parse_args(sys.argv[1:]) configure_logging() version_tag = "v" + args.version github_token = ( args.github_token if args.github_token else get_token(args.github_token_file) ) if args.chocolatey_publish: chocolatey_token = ( args.chocolatey_token if args.chocolatey_token else get_token(args.chocolatey_token_file) ) else: chocolatey_token = None temp_dir = None temp_homebrew_dir = None homebrew_file = None try: validate_environment(args) if args.use_existing_release: release = get_release_for_tag(args.repository, github_token, version_tag) else: release = create_new_release( args.repository, github_token, version_tag, args.release_message, args.prompt_for_message, ) if args.output_dir: output_dir = args.output_dir else: temp_dir = tempfile.mkdtemp() output_dir = temp_dir if args.homebrew_dir: homebrew_dir = args.homebrew_dir else: temp_homebrew_dir = tempfile.mkdtemp() homebrew_dir = temp_homebrew_dir deb_file, homebrew_file, chocolatey_file = build( args, output_dir, release, github_token, homebrew_dir ) publish( args, release, github_token, chocolatey_token, deb_file, homebrew_file, homebrew_dir, chocolatey_file, ) except ReleaseException as e: logging.error(str(e)) finally: if not args.keep_temp_files: def remove(path): try: shutil.rmtree(path) except Exception: logging.error("Could not remove temp dir at {}".format(path)) if temp_dir: remove(temp_dir) if temp_homebrew_dir: # If the person didn't want to publish, we need to keep this around if not homebrew_file or args.homebrew_push_tap: remove(temp_homebrew_dir)
def main(): args = parse_args(sys.argv[1:]) configure_logging() version_tag = "v" + args.version github_token = (args.github_token if args.github_token else get_token( args.github_token_file)) if args.chocolatey_publish: chocolatey_token = (args.chocolatey_token if args.chocolatey_token else get_token(args.chocolatey_token_file)) else: chocolatey_token = None temp_dir = None temp_homebrew_dir = None homebrew_file = None try: validate_environment(args) if args.use_existing_release: release = get_release_for_tag(args.repository, github_token, version_tag) else: release = create_new_release( args.repository, github_token, version_tag, args.release_message, args.prompt_for_message, ) if args.output_dir: output_dir = args.output_dir if not os.path.exists(output_dir): logging.info( "{} does not exist. Creating it".format(output_dir)) os.makedirs(output_dir, exist_ok=True) else: temp_dir = tempfile.mkdtemp() output_dir = temp_dir if args.homebrew_dir: homebrew_dir = args.homebrew_dir elif args.output_dir: homebrew_dir = os.path.abspath( os.path.join(output_dir, "homebrew_" + version_tag)) else: temp_homebrew_dir = tempfile.mkdtemp() homebrew_dir = temp_homebrew_dir deb_file, homebrew_file, chocolatey_file = build( args, output_dir, release, github_token, homebrew_dir) publish( args, release, github_token, chocolatey_token, deb_file, homebrew_file, homebrew_dir, chocolatey_file, ) except ReleaseException as e: logging.error(str(e)) finally: if not args.keep_temp_files: def remove(path): try: shutil.rmtree(path) except Exception: logging.error( "Could not remove temp dir at {}".format(path)) if temp_dir: remove(temp_dir) if temp_homebrew_dir: # If the person didn't want to publish, we need to keep this around if not homebrew_file or args.homebrew_push_tap: remove(temp_homebrew_dir)