blob: 71cda323832325ea5e286103e112c7188b176d1b [file] [log] [blame]
#include <string>
#include <vector>
#include "aos/configuration.h"
#include "aos/init.h"
#include "aos/json_to_flatbuffer.h"
#include "aos/util/file.h"
#include "gflags/gflags.h"
#include "glog/logging.h"
namespace aos {
int Main(int argc, char **argv) {
CHECK_GE(argc, 3) << ": Too few arguments";
VLOG(1) << "Reading " << argv[2];
FlatbufferDetachedBuffer<Configuration> config =
configuration::ReadConfig(argv[2]);
std::vector<aos::FlatbufferString<reflection::Schema>> schemas;
for (int i = 3; i < argc; ++i) {
schemas.emplace_back(util::ReadFileToStringOrDie(argv[i]));
}
const std::string merged_config = FlatbufferToJson(
&configuration::MergeConfiguration(config, schemas).message(), true);
// TODO(austin): Figure out how to squash the schemas onto 1 line so it is
// easier to read?
VLOG(1) << "Flattened config is " << merged_config;
util::WriteStringToFileOrDie(argv[1], merged_config);
return 0;
}
} // namespace aos
int main(int argc, char **argv) {
aos::InitGoogle(&argc, &argv);
return aos::Main(argc, argv);
}