Simplify log_edit's usage

Passing in both the log file path and the header all the time was
redundant and error prone.  Automation to the win!

Change-Id: Iceac4e384c99e883edbb478c295999e616301e10
diff --git a/aos/events/logging/log_edit.cc b/aos/events/logging/log_edit.cc
index 9961bd8..02a1402 100644
--- a/aos/events/logging/log_edit.cc
+++ b/aos/events/logging/log_edit.cc
@@ -15,47 +15,48 @@
     "If true, replace the header on the log file with the JSON header.");
 DEFINE_string(
     header, "",
-    "If provided, this is the path to the JSON with the log file header.");
+    "If provided, this is the path to the JSON with the log file header.  If "
+    "not provided, _header.json will be appended to --logfile.");
 
 int main(int argc, char **argv) {
   gflags::SetUsageMessage(R"(This tool lets us manipulate log files.)");
   aos::InitGoogle(&argc, &argv);
 
-  if (!FLAGS_header.empty()) {
-    if (FLAGS_replace) {
-      const ::std::string header_json =
-          aos::util::ReadFileToStringOrDie(FLAGS_header);
-      flatbuffers::FlatBufferBuilder fbb;
-      fbb.ForceDefaults(true);
-      flatbuffers::Offset<aos::logger::LogFileHeader> header =
-          aos::JsonToFlatbuffer<aos::logger::LogFileHeader>(header_json, &fbb);
+  std::string header =
+      FLAGS_header.empty() ? (FLAGS_logfile + "_header.json") : FLAGS_header;
 
-      fbb.FinishSizePrefixed(header);
+  if (FLAGS_replace) {
+    const ::std::string header_json = aos::util::ReadFileToStringOrDie(header);
+    flatbuffers::FlatBufferBuilder fbb;
+    fbb.ForceDefaults(true);
+    flatbuffers::Offset<aos::logger::LogFileHeader> header =
+        aos::JsonToFlatbuffer<aos::logger::LogFileHeader>(header_json, &fbb);
 
-      const std::string orig_path = FLAGS_logfile + ".orig";
-      PCHECK(rename(FLAGS_logfile.c_str(), orig_path.c_str()) == 0);
+    fbb.FinishSizePrefixed(header);
 
-      aos::logger::SpanReader span_reader(orig_path);
-      CHECK(!span_reader.ReadMessage().empty()) << ": Empty header, aborting";
+    const std::string orig_path = FLAGS_logfile + ".orig";
+    PCHECK(rename(FLAGS_logfile.c_str(), orig_path.c_str()) == 0);
 
-      aos::logger::DetachedBufferWriter buffer_writer(
-          FLAGS_logfile, std::make_unique<aos::logger::DummyEncoder>());
-      buffer_writer.QueueSizedFlatbuffer(&fbb);
+    aos::logger::SpanReader span_reader(orig_path);
+    CHECK(!span_reader.ReadMessage().empty()) << ": Empty header, aborting";
 
-      while (true) {
-        absl::Span<const uint8_t> msg_data = span_reader.ReadMessage();
-        if (msg_data == absl::Span<const uint8_t>()) {
-          break;
-        }
+    aos::logger::DetachedBufferWriter buffer_writer(
+        FLAGS_logfile, std::make_unique<aos::logger::DummyEncoder>());
+    buffer_writer.QueueSizedFlatbuffer(&fbb);
 
-        buffer_writer.QueueSpan(msg_data);
+    while (true) {
+      absl::Span<const uint8_t> msg_data = span_reader.ReadMessage();
+      if (msg_data == absl::Span<const uint8_t>()) {
+        break;
       }
-    } else {
-      aos::logger::MessageReader reader(FLAGS_logfile);
-      aos::util::WriteStringToFileOrDie(
-          FLAGS_header, aos::FlatbufferToJson(reader.log_file_header(),
-                                              {.multi_line = true}));
+
+      buffer_writer.QueueSpan(msg_data);
     }
+  } else {
+    aos::logger::MessageReader reader(FLAGS_logfile);
+    aos::util::WriteStringToFileOrDie(
+        header,
+        aos::FlatbufferToJson(reader.log_file_header(), {.multi_line = true}));
   }
 
   return 0;