Allow multiple files in CLI syntax

This commit is contained in:
Otto Winter 2019-07-01 11:09:06 +02:00
parent 59091100e4
commit 894ec07cc8
No known key found for this signature in database
GPG Key ID: DB66C0BE6013F97E
3 changed files with 24 additions and 17 deletions

View File

@ -250,7 +250,7 @@ def setup_log(debug=False, quiet=False):
def command_wizard(args): def command_wizard(args):
from esphome import wizard from esphome import wizard
return wizard.wizard(args.configuration) return wizard.wizard(args.configuration[0])
def command_config(args, config): def command_config(args, config):
@ -264,7 +264,7 @@ def command_config(args, config):
def command_vscode(args): def command_vscode(args):
from esphome import vscode from esphome import vscode
CORE.config_path = args.configuration CORE.config_path = args.configuration[0]
vscode.read_config(args) vscode.read_config(args)
@ -354,7 +354,7 @@ def command_update_all(args):
import click import click
success = {} success = {}
files = list_yaml_files(args.configuration) files = list_yaml_files(args.configuration[0])
twidth = 60 twidth = 60
def print_bar(middle_text): def print_bar(middle_text):
@ -367,7 +367,7 @@ def command_update_all(args):
print("Updating {}".format(color('cyan', f))) print("Updating {}".format(color('cyan', f)))
print('-' * twidth) print('-' * twidth)
print() print()
rc = run_external_process('esphome', f, 'run', '--no-logs') rc = run_external_process('esphome', '--dashboard', f, 'run', '--no-logs')
if rc == 0: if rc == 0:
print_bar("[{}] {}".format(color('bold_green', 'SUCCESS'), f)) print_bar("[{}] {}".format(color('bold_green', 'SUCCESS'), f))
success[f] = True success[f] = True
@ -417,7 +417,7 @@ def parse_args(argv):
parser.add_argument('-q', '--quiet', help="Disable all esphome logs.", parser.add_argument('-q', '--quiet', help="Disable all esphome logs.",
action='store_true') action='store_true')
parser.add_argument('--dashboard', help=argparse.SUPPRESS, action='store_true') parser.add_argument('--dashboard', help=argparse.SUPPRESS, action='store_true')
parser.add_argument('configuration', help='Your YAML configuration file.', nargs='?') parser.add_argument('configuration', help='Your YAML configuration file.', nargs='*')
subparsers = parser.add_subparsers(help='Commands', dest='command') subparsers = parser.add_subparsers(help='Commands', dest='command')
subparsers.required = True subparsers.required = True
@ -497,7 +497,7 @@ def run_esphome(argv):
CORE.dashboard = args.dashboard CORE.dashboard = args.dashboard
setup_log(args.verbose, args.quiet) setup_log(args.verbose, args.quiet)
if args.command != 'version' and args.configuration is None: if args.command != 'version' and not args.configuration:
_LOGGER.error("Missing configuration parameter, see esphome --help.") _LOGGER.error("Missing configuration parameter, see esphome --help.")
return 1 return 1
@ -508,21 +508,28 @@ def run_esphome(argv):
_LOGGER.error(e) _LOGGER.error(e)
return 1 return 1
CORE.config_path = args.configuration for conf_path in args.configuration:
CORE.config_path = conf_path
CORE.dashboard = args.dashboard
config = read_config(args.verbose) config = read_config(args.verbose)
if config is None: if config is None:
return 1 return 1
CORE.config = config CORE.config = config
if args.command not in POST_CONFIG_ACTIONS:
safe_print(u"Unknown command {}".format(args.command))
if args.command in POST_CONFIG_ACTIONS:
try: try:
return POST_CONFIG_ACTIONS[args.command](args, config) rc = POST_CONFIG_ACTIONS[args.command](args, config)
except EsphomeError as e: except EsphomeError as e:
_LOGGER.error(e) _LOGGER.error(e)
return 1 return 1
safe_print(u"Unknown command {}".format(args.command)) if rc != 0:
return 1 return rc
CORE.reset()
return 0
def main(): def main():

View File

@ -59,7 +59,7 @@ class DashboardSettings(object):
self.password_digest = hmac.new(args.password).digest() self.password_digest = hmac.new(args.password).digest()
else: else:
self.password_digest = hmac.new(args.password.encode()).digest() self.password_digest = hmac.new(args.password.encode()).digest()
self.config_dir = args.configuration self.config_dir = args.configuration[0]
@property @property
def relative_url(self): def relative_url(self):

View File

@ -59,7 +59,7 @@ def read_config(args):
CORE.ace = args.ace CORE.ace = args.ace
f = data['file'] f = data['file']
if CORE.ace: if CORE.ace:
CORE.config_path = os.path.join(args.configuration, f) CORE.config_path = os.path.join(args.configuration[0], f)
else: else:
CORE.config_path = data['file'] CORE.config_path = data['file']
vs = VSCodeResult() vs = VSCodeResult()