Fix aos cli autocomplete config check
ReadConfig does the work of finding the config path, so it shouldn't be
assumed to be in the current directory.
Signed-off-by: Milind Upadhyay <milind.upadhyay@gmail.com>
Change-Id: I20552dfc002bfd6235dd2ac981d1d8ee245bd2e9
Signed-off-by: milind-u <milind.upadhyay@gmail.com>
diff --git a/aos/aos_cli_utils.cc b/aos/aos_cli_utils.cc
index f71ed2a..970797a 100644
--- a/aos/aos_cli_utils.cc
+++ b/aos/aos_cli_utils.cc
@@ -36,16 +36,19 @@
bool expect_args) {
// Don't generate failure output if the config doesn't exist while attempting
// to autocomplete.
- if (struct stat file_stat;
- FLAGS__bash_autocomplete &&
- (!(EndsWith(FLAGS_config, ".json") || EndsWith(FLAGS_config, ".bfbs")) ||
- stat(FLAGS_config.c_str(), &file_stat) != 0 ||
- (file_stat.st_mode & S_IFMT) != S_IFREG)) {
+ if (FLAGS__bash_autocomplete &&
+ (!(EndsWith(FLAGS_config, ".json") || EndsWith(FLAGS_config, ".bfbs")))) {
std::cout << "COMPREPLY=()";
return true;
}
- config.emplace(aos::configuration::ReadConfig(FLAGS_config));
+ config = aos::configuration::MaybeReadConfig(FLAGS_config);
+ if (FLAGS__bash_autocomplete && !config.has_value()) {
+ std::cout << "COMPREPLY=()";
+ return true;
+ }
+ CHECK(config.has_value()) << "Could not read config. See above errors.";
+
event_loop.emplace(&config->message());
event_loop->SkipTimingReport();
event_loop->SkipAosLog();