Add support for reading, merging, and querying configs
Change-Id: I04a07cf5e9a6b41213b3101f3e04be350e50b41f
diff --git a/aos/util/file.cc b/aos/util/file.cc
index f952955..9c81b3e 100644
--- a/aos/util/file.cc
+++ b/aos/util/file.cc
@@ -3,20 +3,26 @@
#include <fcntl.h>
#include <unistd.h>
+#include "absl/strings/string_view.h"
#include "aos/logging/logging.h"
#include "aos/scoped/scoped_fd.h"
namespace aos {
namespace util {
-::std::string ReadFileToStringOrDie(const ::std::string &filename) {
+::std::string ReadFileToStringOrDie(const absl::string_view filename) {
::std::string r;
- ScopedFD fd(PCHECK(open(filename.c_str(), O_RDONLY)));
+ ScopedFD fd(open(::std::string(filename).c_str(), O_RDONLY));
+ if (fd.get() == -1) {
+ PLOG(FATAL, "opening %*s", static_cast<int>(filename.size()),
+ filename.data());
+ }
while (true) {
char buffer[1024];
const ssize_t result = read(fd.get(), buffer, sizeof(buffer));
if (result < 0) {
- PLOG(FATAL, "reading from %s", filename.c_str());
+ PLOG(FATAL, "reading from %*s", static_cast<int>(filename.size()),
+ filename.data());
} else if (result == 0) {
break;
}