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',
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,