diff --git a/funkwhale_cli/cli.py b/funkwhale_cli/cli.py
index fa892e39452385d8c852b857925d93a4a7ad6fb2..70252b581cd5cba1ed8ea45737660b52b586ae7e 100644
--- a/funkwhale_cli/cli.py
+++ b/funkwhale_cli/cli.py
@@ -118,14 +118,14 @@ class lazy_credential():
return bool(self.value)
-def set_server(ctx, url, token):
+def set_server(ctx, url, token, use_auth=True):
ctx.ensure_object(dict)
ctx.obj["SERVER_URL"] = url
parsed = urllib.parse.urlparse(url)
ctx.obj["SERVER_NETLOC"] = parsed.netloc
ctx.obj["SERVER_PROTOCOL"] = parsed.scheme
try:
- token = token or lazy_credential(url, "_")
+ token = (token or lazy_credential(url, "_")) if use_auth else None
except ValueError as e:
raise click.ClickException("Error while retrieving password from keyring: {}. Your password may be incorrect.".format(e.args[0]))
except Exception as e:
@@ -154,6 +154,13 @@ def set_server(ctx, url, token):
default=False,
help="Disable logging",
)
+@click.option(
+ "--no-login",
+ envvar="FUNKWHALE_NO_LOGIN",
+ is_flag=True,
+ default=False,
+ help="Disable authentication/keyring",
+)
@SERVER_DECORATOR
@TOKEN_DECORATOR
@click_log.simple_verbosity_option(logs.logger, expose_value=True)
@@ -161,7 +168,7 @@ def set_server(ctx, url, token):
def cli(ctx, env_file, url, verbosity, token, quiet):
ctx.ensure_object(dict)
logs.logger.disabled = quiet
- set_server(ctx, url, token)
+ set_server(ctx, url, token, use_auth=not no_login)
@cli.command()