/* * Copyright 2012, Rene Gollent, rene@gollent.com. * Distributed under the terms of the MIT License. */ #include "CliDebugReportCommand.h" #include #include #include #include #include "CliContext.h" #include "UiUtils.h" #include "UserInterface.h" CliDebugReportCommand::CliDebugReportCommand() : CliCommand("save debug report", "%s\n" "Saves a debug information report for the current team.") { } void CliDebugReportCommand::Execute(int argc, const char* const* argv, CliContext& context) { BPath path; if (argc > 1) { path.SetTo(argv[1]); if (path.InitCheck() != B_OK) { printf("Invalid report path %s given.\n", argv[1]); return; } } else { char buffer[B_FILE_NAME_LENGTH]; UiUtils::ReportNameForTeam(context.GetTeam(), buffer, sizeof(buffer)); find_directory(B_DESKTOP_DIRECTORY, &path); path.Append(buffer); } entry_ref ref; if (get_ref_for_path(path.Path(), &ref) == B_OK) { printf("Saving debug information report to %s...\n", path.Path()); context.GetUserInterfaceListener()->DebugReportRequested(&ref); } }