Example #1
0
void CPatcherService::Patch(const boost::filesystem::path& patchSrcPath, const boost::filesystem::path& patchDstPath, const ContinuationFunction& continuation)
{
	PATCHER_SERVICE_COMMAND command;
	command.patchDstPath = patchDstPath;
	command.patchSrcPath = patchSrcPath;
	LaunchCommand(command, continuation);
}
bool RunExternalMerge(std::string fileMine,
                      std::string fileYours,
                      DirectoryGroups& dirGroups,
                      std::string fileOlder)
{
   TDEBUG_ENTER("RunExternalMerge");
   TDEBUG_TRACE("File mine: " << fileMine);
   TDEBUG_TRACE("File yours: " << fileYours);
   bool bResult = true;
   bool again = false;
   std::string command;
   std::string externalApp;
   std::string externalParams;


   // Perform merge, waiting for it to finish 
   if (fileOlder.empty())
   {
       externalParams = dirGroups.GetStringPreference("External Merge2 Params");
       std::map<std::string, std::string> params;
       params["mine"] = fileMine;
       params["yours"] = fileYours;
       externalParams = ReplaceParams(externalParams, params);
   }
   else
       externalParams = dirGroups.GetStringPreference("External Merge3 Params");

   do
   {
      externalApp = GetExternalApplication("Merge",
                                           dirGroups,
                                           again);

      again = false;
      if (externalApp.empty())
      {
         goto Cleanup;
      }
      command = "\"" + externalApp + "\" " + externalParams;
      if (!LaunchCommand(command, true))
      {
         DoMessageDialog(0, wxString(_("Failed to launch external merge application")) 
                         + wxString(wxT("\n"))
                         + wxString(wxText(command)));
         again = true;
      }
   } while (again);

   bResult = true;

Cleanup:
   return bResult;
}
bool RunExternalDiff(std::string filename1,
                     std::string filename2,
                     DirectoryGroups& dirGroups,
                     std::string filename3)
{
   TDEBUG_ENTER("RunExternalDiff");
   TDEBUG_TRACE("File 1: " << filename1);
   TDEBUG_TRACE("File 2: " << filename2);
   bool bResult = true;
   bool again = false;
   std::string command;
   std::string externalApp;
   std::string externalParams;

   // Perform diff, waiting for it to finish 
   if (filename3.empty())
   {
      externalParams = dirGroups.GetStringPreference("External Diff2 Params");
      std::map<std::string, std::string> params;
      params["1"] = filename1;
      params["2"] = filename2;
      externalParams = ReplaceParams(externalParams, params);
   }
   else
      externalParams = dirGroups.GetStringPreference("External Diff3 Params");

   do
   {
      externalApp = GetExternalApplication("Diff",
                                           dirGroups,
                                           again);
      again = false;
      if (externalApp.empty())
          return false;

      command = "\"" + externalApp + "\" " + externalParams;
      if (!LaunchCommand(command, true))
      {
         DoMessageDialog(0, wxString(_("Failed to launch external diff application"))
                         + wxString(wxT("\n"))
                         + wxString(wxText(command)));
         again = true;
      }
   } while (again);

   return true;
}
Example #4
0
void
LaunchCommandActuator::KeyEventAsync(const BMessage* keyMessage,
	void* asyncData)
{
	if (be_roster == NULL)
		return;

	status_t result = B_OK;
	BString string;
	if (fArgc < 1)
		string << "You didn't specify a command for this hotkey.";
	else if ((result = LaunchCommand(fArgv, fArgc)) != B_OK) {
		string << "Can't launch " << fArgv[0];
		string << ", no such file exists.";
		string << " Please check your Shortcuts settings.";
	}

	if (fArgc < 1 || result != B_OK) {
		BAlert* alert = new BAlert("Shortcuts launcher error",
			string.String(), "OK");
		alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE);
		alert->Go(NULL);
	}
}