From 644a36c20942029ece43ea9fbeb6163d4b706c56 Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Fri, 29 Apr 2016 13:15:23 -0700 Subject: [PATCH] Automatically add a .zip to adb bugreport file when missing. BUG: 27653204 Change-Id: Ib322f1f9eeedd8e78c9a51a845a20c462442a0fe --- adb/commandline.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/adb/commandline.cpp b/adb/commandline.cpp index 0c5be84e2..39fe3c47d 100644 --- a/adb/commandline.cpp +++ b/adb/commandline.cpp @@ -1175,7 +1175,11 @@ static int bugreport(TransportType transport_type, const char* serial, int argc, // Zipped bugreport option - will call 'bugreportz', which prints the location of the generated // file, then pull it to the destination file provided by the user. - const char* dest_file = argv[1]; + std::string dest_file = argv[1]; + if (!android::base::EndsWith(argv[1], ".zip")) { + // TODO: use a case-insensitive comparison (like EndsWithIgnoreCase + dest_file += ".zip"; + } std::string output; int status = send_shell_command(transport_type, serial, "bugreportz", true, &output); @@ -1185,9 +1189,9 @@ static int bugreport(TransportType transport_type, const char* serial, int argc, if (android::base::StartsWith(output, BUGZ_OK_PREFIX)) { const char* zip_file = &output[strlen(BUGZ_OK_PREFIX)]; std::vector srcs{zip_file}; - status = do_sync_pull(srcs, dest_file, true, dest_file) ? 0 : 1; + status = do_sync_pull(srcs, dest_file.c_str(), true, dest_file.c_str()) ? 0 : 1; if (status != 0) { - fprintf(stderr, "Could not copy file '%s' to '%s'\n", zip_file, dest_file); + fprintf(stderr, "Could not copy file '%s' to '%s'\n", zip_file, dest_file.c_str()); } return status; }