Streamer mode (#5119)

This commit is contained in:
Graham Brown 2023-07-20 22:47:37 +02:00 committed by GitHub
parent 76c0d0912f
commit 89c5298bb9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 5 deletions

View file

@ -365,10 +365,16 @@ def command_wizard(args):
def command_config(args, config): def command_config(args, config):
_LOGGER.info("Configuration is valid!")
if not CORE.verbose: if not CORE.verbose:
config = strip_default_ids(config) config = strip_default_ids(config)
safe_print(yaml_util.dump(config, args.show_secrets)) output = yaml_util.dump(config, args.show_secrets)
# add the console decoration so the front-end can hide the secrets
if not args.show_secrets:
output = re.sub(
r"(password|key|psk|ssid)\:\s(.*)", r"\1: \\033[5m\2\\033[6m", output
)
safe_print(output)
_LOGGER.info("Configuration is valid!")
return 0 return 0

View file

@ -93,6 +93,10 @@ class DashboardSettings:
def using_auth(self): def using_auth(self):
return self.using_password or self.using_ha_addon_auth return self.using_password or self.using_ha_addon_auth
@property
def streamer_mode(self):
return get_bool_env("ESPHOME_STREAMER_MODE")
def check_password(self, username, password): def check_password(self, username, password):
if not self.using_auth: if not self.using_auth:
return True return True
@ -131,7 +135,7 @@ def template_args():
"docs_link": docs_link, "docs_link": docs_link,
"get_static_file_url": get_static_file_url, "get_static_file_url": get_static_file_url,
"relative_url": settings.relative_url, "relative_url": settings.relative_url,
"streamer_mode": get_bool_env("ESPHOME_STREAMER_MODE"), "streamer_mode": settings.streamer_mode,
"config_dir": settings.config_dir, "config_dir": settings.config_dir,
} }
@ -396,7 +400,10 @@ class EsphomeCompileHandler(EsphomeCommandWebSocket):
class EsphomeValidateHandler(EsphomeCommandWebSocket): class EsphomeValidateHandler(EsphomeCommandWebSocket):
def build_command(self, json_message): def build_command(self, json_message):
config_file = settings.rel_path(json_message["configuration"]) config_file = settings.rel_path(json_message["configuration"])
return ["esphome", "--dashboard", "config", config_file] command = ["esphome", "--dashboard", "config", config_file]
if not settings.streamer_mode:
command.append("--show-secrets")
return command
class EsphomeCleanMqttHandler(EsphomeCommandWebSocket): class EsphomeCleanMqttHandler(EsphomeCommandWebSocket):
@ -1147,7 +1154,7 @@ class JsonConfigRequestHandler(BaseHandler):
self.send_error(404) self.send_error(404)
return return
args = ["esphome", "config", settings.rel_path(configuration), "--show-secrets"] args = ["esphome", "config", filename, "--show-secrets"]
rc, stdout, _ = run_system_command(*args) rc, stdout, _ = run_system_command(*args)