diff options
-rw-r--r-- | src/main/cpp/blaze.cc | 83 | ||||
-rw-r--r-- | src/main/cpp/blaze_startup_options.cc | 4 | ||||
-rw-r--r-- | src/main/cpp/blaze_startup_options.h | 3 | ||||
-rw-r--r-- | src/main/cpp/blaze_startup_options_common.cc | 6 | ||||
-rw-r--r-- | src/main/cpp/util/strings.cc | 13 | ||||
-rw-r--r-- | src/main/cpp/util/strings.h | 3 |
6 files changed, 76 insertions, 36 deletions
diff --git a/src/main/cpp/blaze.cc b/src/main/cpp/blaze.cc index d51ab787f1..56ca81e31c 100644 --- a/src/main/cpp/blaze.cc +++ b/src/main/cpp/blaze.cc @@ -182,8 +182,9 @@ static string GetInstallBase(const string &root, const string &self_path) { int retval = archive_read_open_filename(blaze_zip, self_path.c_str(), 10240); if (retval != ARCHIVE_OK) { die(blaze_exit_code::LOCAL_ENVIRONMENTAL_ERROR, - "\nFailed to open blaze as a zip file: (%d) %s", - archive_errno(blaze_zip), archive_error_string(blaze_zip)); + "\nFailed to open %s as a zip file: (%d) %s", + globals->options.GetProductName().c_str(), archive_errno(blaze_zip), + archive_error_string(blaze_zip)); } struct archive_entry *entry; @@ -234,7 +235,9 @@ static vector<string> GetArgumentArray() { // ~/src/build_root/WORKSPACE file) will appear in ps(1) as "blaze(src)". string workspace = blaze_util::Basename(blaze_util::Dirname(globals->workspace)); - result.push_back("blaze(" + workspace + ")"); + string product = globals->options.GetProductName(); + blaze_util::ToLower(&product); + result.push_back(product + "(" + workspace + ")"); if (globals->options.batch) { result.push_back("-client"); result.push_back("-Xms256m"); @@ -520,18 +523,23 @@ static void StartStandalone() { globals->startup_time = ProcessClock() / 1000000LL; if (VerboseLogging()) { - fprintf(stderr, "Starting blaze in batch mode.\n"); + fprintf(stderr, "Starting %s in batch mode.\n", + globals->options.GetProductName().c_str()); } string command = globals->option_processor.GetCommand(); vector<string> command_arguments; globals->option_processor.GetCommandArguments(&command_arguments); if (!command_arguments.empty() && command == "shutdown") { + string product = globals->options.GetProductName(); + blaze_util::ToLower(&product); fprintf(stderr, "WARNING: Running command \"shutdown\" in batch mode. Batch mode " - "is triggered\nwhen not running blaze within a workspace. If you " - "intend to shutdown an\nexisting blaze server, run \"blaze " - "shutdown\" from the directory where\nit was started.\n"); + "is triggered\nwhen not running %s within a workspace. If you " + "intend to shutdown an\nexisting %s server, run \"%s " + "shutdown\" from the directory where\nit was started.\n", + globals->options.GetProductName().c_str(), + globals->options.GetProductName().c_str(), product.c_str()); } vector<string> jvm_args_vector = GetArgumentArray(); if (command != "") { @@ -660,8 +668,8 @@ static int ConnectToServer(bool start) { // Kills the specified running Blaze server. static void KillRunningServer(pid_t server_pid) { - fprintf(stderr, "Sending SIGTERM to previous Blaze server (pid=%d)... ", - server_pid); + fprintf(stderr, "Sending SIGTERM to previous %s server (pid=%d)... ", + globals->options.GetProductName().c_str(), server_pid); fflush(stderr); for (int ii = 0; ii < 100; ++ii) { // wait up to 10s if (kill(server_pid, SIGTERM) == -1) { @@ -673,8 +681,8 @@ static void KillRunningServer(pid_t server_pid) { // If the previous attempt did not suceeded, kill the whole group. fprintf(stderr, - "Sending SIGKILL to previous Blaze server process group (pid=%d)... ", - server_pid); + "Sending SIGKILL to previous %s server process group (pid=%d)... ", + globals->options.GetProductName().c_str(), server_pid); fflush(stderr); killpg(server_pid, SIGKILL); if (kill(server_pid, 0) == -1) { // (probe) @@ -760,14 +768,16 @@ static void ActuallyExtractData(const string &argv0, "couldn't create '%s'", embedded_binaries.c_str()); } - fprintf(stderr, "Extracting Blaze installation...\n"); + fprintf(stderr, "Extracting %s installation...\n", + globals->options.GetProductName().c_str()); struct archive *blaze_zip = archive_read_new(); archive_read_support_format_zip(blaze_zip); int retval = archive_read_open_filename(blaze_zip, argv0.c_str(), 10240); if (retval != ARCHIVE_OK) { die(blaze_exit_code::LOCAL_ENVIRONMENTAL_ERROR, - "\nFailed to open blaze as a zip file"); + "\nFailed to open %s as a zip file", + globals->options.GetProductName().c_str()); } struct archive_entry *entry; @@ -794,8 +804,9 @@ static void ActuallyExtractData(const string &argv0, break; } else if (retval != ARCHIVE_OK) { die(blaze_exit_code::LOCAL_ENVIRONMENTAL_ERROR, - "\nFailed to extract data from blaze zip: (%d) %s", - archive_errno(blaze_zip), archive_error_string(blaze_zip)); + "\nFailed to extract data from %s zip: (%d) %s", + globals->options.GetProductName().c_str(), archive_errno(blaze_zip), + archive_error_string(blaze_zip)); } if (write(fd, buf, size) != size) { die(blaze_exit_code::LOCAL_ENVIRONMENTAL_ERROR, @@ -810,7 +821,7 @@ static void ActuallyExtractData(const string &argv0, retval = archive_read_free(blaze_zip); if (retval != ARCHIVE_OK) { die(blaze_exit_code::LOCAL_ENVIRONMENTAL_ERROR, - "\nFailed to close blaze zip"); + "\nFailed to close %s zip", globals->options.GetProductName().c_str()); } const time_t TEN_YEARS_IN_SEC = 3600 * 24 * 365 * 10; @@ -985,8 +996,9 @@ static void KillRunningServerIfDifferentStartupOptions() { if (ServerNeedsToBeKilled(arguments, GetArgumentArray())) { globals->restart_reason = NEW_OPTIONS; fprintf(stderr, - "WARNING: Running Blaze server needs to be killed, because the " - "startup options are different.\n"); + "WARNING: Running %s server needs to be killed, because the " + "startup options are different.\n", + globals->options.GetProductName().c_str()); KillRunningServer(server_pid); } } @@ -1052,23 +1064,26 @@ static void sigprintf(const char *format, ...) { static void handler(int signum) { // A defensive measure: if (kill(globals->server_pid, 0) == -1 && errno == ESRCH) { - sigprintf("\nBlaze server has died; client exiting.\n\n"); + sigprintf("\n%s server has died; client exiting.\n\n", + globals->options.GetProductName().c_str()); _exit(1); } switch (signum) { case SIGINT: if (++globals->sigint_count >= 3) { - sigprintf("\nBlaze caught third interrupt signal; killed.\n\n"); + sigprintf("\n%s caught third interrupt signal; killed.\n\n", + globals->options.GetProductName().c_str()); kill(globals->server_pid, SIGKILL); _exit(1); } - sigprintf("\nBlaze caught interrupt signal; shutting down.\n\n"); - + sigprintf("\n%s caught interrupt signal; shutting down.\n\n", + globals->options.GetProductName().c_str()); kill(globals->server_pid, SIGINT); break; case SIGTERM: - sigprintf("\nBlaze caught terminate signal; shutting down.\n\n"); + sigprintf("\n%s caught terminate signal; shutting down.\n\n", + globals->options.GetProductName().c_str()); kill(globals->server_pid, SIGINT); break; case SIGPIPE: @@ -1095,8 +1110,9 @@ static char read_server_char(FILE *fp) { // e.g. external SIGKILL of server, misplaced System.exit() in the server, // or a JVM crash. Print out the jvm.out file in case there's something // useful. - fprintf(stderr, "Error: unexpected EOF from Blaze server.\n" - "Contents of '%s':\n", globals->jvm_log_file.c_str()); + fprintf(stderr, "Error: unexpected EOF from %s server.\n" + "Contents of '%s':\n", globals->options.GetProductName().c_str(), + globals->jvm_log_file.c_str()); WriteFileToStreamOrDie(stderr, globals->jvm_log_file.c_str()); exit(blaze_exit_code::INTERNAL_ERROR); } @@ -1201,8 +1217,8 @@ static void SendServerRequest(void) { // Timeout. Print a message, then go ahead and read from // the socket (the read will usually block). fprintf(stderr, - "INFO: Waiting for response from blaze server (pid %d)...\n", - globals->server_pid); + "INFO: Waiting for response from %s server (pid %d)...\n", + globals->options.GetProductName().c_str(), globals->server_pid); break; } else { // result < 0 // Error. For EINTR we try again, all other errors are fatal. @@ -1440,11 +1456,12 @@ static void AcquireLock() { } if (!globals->options.block_for_lock) { die(blaze_exit_code::BAD_ARGV, - "Another Blaze command is running (pid=%d). Exiting immediately.", - probe.l_pid); + "Another %s command is running (pid=%d). Exiting immediately.", + globals->options.GetProductName().c_str(), probe.l_pid); } - fprintf(stderr, "Another Blaze command is running (pid = %d). " - "Waiting for it to complete...", probe.l_pid); + fprintf(stderr, "Another %s command is running (pid = %d). " + "Waiting for it to complete...", + globals->options.GetProductName().c_str(), probe.l_pid); fflush(stderr); // Take a clock sample for that start of the waiting time @@ -1467,8 +1484,8 @@ static void AcquireLock() { // Identify ourselves in the lockfile. ftruncate(globals->lockfd, 0); const char *tty = ttyname(STDIN_FILENO); // NOLINT (single-threaded) - string msg = "owner=blaze launcher\npid=" + std::to_string(getpid()) + - "\ntty=" + (tty ? tty : "") + "\n"; + string msg = "owner=" + globals->options.GetProductName() + " launcher\npid=" + + std::to_string(getpid()) + "\ntty=" + (tty ? tty : "") + "\n"; // Don't bother checking for error, since it's unlikely and unimportant. // The contents are currently meant only for debugging. write(globals->lockfd, msg.data(), msg.size()); diff --git a/src/main/cpp/blaze_startup_options.cc b/src/main/cpp/blaze_startup_options.cc index ffbe403154..c58a42ccdd 100644 --- a/src/main/cpp/blaze_startup_options.cc +++ b/src/main/cpp/blaze_startup_options.cc @@ -65,6 +65,10 @@ BlazeStartupOptions& BlazeStartupOptions::operator=( return *this; } +string BlazeStartupOptions::GetProductName() { + return "Bazel"; +} + string BlazeStartupOptions::GetOutputRoot() { return "/var/tmp"; } diff --git a/src/main/cpp/blaze_startup_options.h b/src/main/cpp/blaze_startup_options.h index c8d902dc93..73b0405fb1 100644 --- a/src/main/cpp/blaze_startup_options.h +++ b/src/main/cpp/blaze_startup_options.h @@ -46,6 +46,9 @@ class BlazeStartupOptions { ~BlazeStartupOptions(); BlazeStartupOptions& operator=(const BlazeStartupOptions &rhs); + // Returns the capitalized name of this binary. + string GetProductName(); + // Parses a single argument, either from the command line or from the .blazerc // "startup" options. // diff --git a/src/main/cpp/blaze_startup_options_common.cc b/src/main/cpp/blaze_startup_options_common.cc index 957546cb0e..1620ace32e 100644 --- a/src/main/cpp/blaze_startup_options_common.cc +++ b/src/main/cpp/blaze_startup_options_common.cc @@ -211,10 +211,10 @@ blaze_exit_code::ExitCode BlazeStartupOptions::ProcessArg( return process_extra_arg_exit_code; } if (!extra_argument_processed) { - blaze_util::StringPrintf(error, - "Unknown Blaze startup option: '%s'.\n" + blaze_util::StringPrintf( + error, "Unknown %s startup option: '%s'.\n" " For more info, run 'blaze help startup_options'.", - arg); + GetProductName().c_str(), arg); return blaze_exit_code::BAD_ARGV; } } diff --git a/src/main/cpp/util/strings.cc b/src/main/cpp/util/strings.cc index 192758be0f..d07f86dfc7 100644 --- a/src/main/cpp/util/strings.cc +++ b/src/main/cpp/util/strings.cc @@ -295,4 +295,17 @@ void StringPrintf(string *str, const char *format, ...) { delete[] buf; } +void ToLower(string *str) { + assert(str); + if (str->empty()) { + return; + } + + string temp = ""; + for (auto ch : *str) { + temp += tolower(ch); + } + *str = temp; +} + } // namespace blaze_util diff --git a/src/main/cpp/util/strings.h b/src/main/cpp/util/strings.h index 5d2dc46359..b3742eb8cf 100644 --- a/src/main/cpp/util/strings.h +++ b/src/main/cpp/util/strings.h @@ -106,6 +106,9 @@ void Tokenize( // Evaluate a format string and store the result in 'str'. void StringPrintf(string *str, const char *format, ...); +// Convert str to lower case. No locale handling, this is just for ASCII. +void ToLower(string* str); + } // namespace blaze_util #endif // DEVTOOLS_BLAZE_MAIN_UTIL_STRINGS_H_ |