Esempio n. 1
0
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)
Esempio n. 2
0
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)