Beispiel #1
0
    while bar.n < bar.total:
        if time() - start_time >= opts.bootstrap_timeout:
            print(
                'Metadata scan takes too long, probably something went really wrong'
            )
            exit(1)
        sleep(3)

    bar.close()

    notifier.stop()


if __name__ == '__main__':
    if which('docker') is None:
        print('Docker is required to be available')
        exit(1)

    default_ip = None
    available_ips = get_ips()
    if len(available_ips) > 0:
        default_ip = available_ips[0]

    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument('--username', help='Your Plex username')
    parser.add_argument('--password', help='Your Plex password')
    parser.add_argument('--token',
                        help='Plex.tv authentication token',
                        default=plexapi.CONFIG.get('auth.server_token'))
    parser.add_argument('--timezone',
Beispiel #2
0
        help="Display access token after bootstrap",
        default=False,
        action="store_true",
    )  # noqa
    opts = parser.parse_args()

    account = get_plex_account(opts)
    path = os.path.realpath(os.path.expanduser(opts.destination))
    media_path = os.path.join(path, "media")
    makedirs(media_path, exist_ok=True)

    # Download the Plex Docker image
    if opts.no_docker is False:
        print("Creating Plex instance named %s with advertised ip %s" %
              (opts.server_name, opts.advertise_ip))
        if which("docker") is None:
            print("Docker is required to be available")
            exit(1)
        if call(["docker", "pull",
                 "plexinc/pms-docker:%s" % opts.docker_tag]) != 0:
            print("Got an error when executing docker pull!")
            exit(1)

        # Start the Plex Docker container

        arg_bindings = {
            "destination": path,
            "hostname": opts.server_name,
            "claim_token": account.claimToken() if account else "",
            "timezone": opts.timezone,
            "advertise_ip": opts.advertise_ip,