diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a2f5bb6..1559fff0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,9 @@ - Organized cmdeploy into install, configure, and activate stages ([#695](https://github.com/chatmail/relay/pull/695)) +- echobot: print invite-link also if it's deployed locally + ([#751](https://github.com/chatmail/relay/pull/751)) + - docs: move readme.md docs to sphinx documentation rendered at https://chatmail.at/doc/relay ([#711](https://github.com/chatmail/relay/pull/711)) diff --git a/cmdeploy/src/cmdeploy/cmdeploy.py b/cmdeploy/src/cmdeploy/cmdeploy.py index 6e5f7c7e..f2596e04 100644 --- a/cmdeploy/src/cmdeploy/cmdeploy.py +++ b/cmdeploy/src/cmdeploy/cmdeploy.py @@ -11,6 +11,7 @@ import shutil import subprocess import sys +import time from pathlib import Path import pyinfra @@ -109,15 +110,22 @@ def run_cmd(args, out): try: retcode = out.check_call(cmd, env=env) if retcode == 0: - if not args.disable_mail: + if not args.disable_mail and not args.dry_run: print("\nYou can try out the relay by talking to this echo bot: ") - sshexec = SSHExec(args.config.mail_domain, verbose=args.verbose) - print( - sshexec( - call=remote.rshell.shell, - kwargs=dict(command="cat /var/lib/echobot/invite-link.txt"), + invite_path = Path("/var/lib/echobot/invite-link.txt") + if ssh_host in ["localhost", "@local", "@docker"]: + while not invite_path.exists(): + time.sleep(0.1) + with invite_path.open() as f: + print(f.readline()) + else: + echo_sshexec = get_sshexec(ssh_host, verbose=args.verbose) + print( + echo_sshexec( + call=remote.rshell.shell, + kwargs=dict(command=f"cat {invite_path}"), + ) ) - ) out.green("Deploy completed, call `cmdeploy dns` next.") elif not remote_data["acme_account_url"]: out.red("Deploy completed but letsencrypt not configured")