summaryrefslogtreecommitdiffstats
path: root/mmc_updater/src/UpdaterOptions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mmc_updater/src/UpdaterOptions.cpp')
-rw-r--r--mmc_updater/src/UpdaterOptions.cpp82
1 files changed, 7 insertions, 75 deletions
diff --git a/mmc_updater/src/UpdaterOptions.cpp b/mmc_updater/src/UpdaterOptions.cpp
index 0945431b..abc7c6d7 100644
--- a/mmc_updater/src/UpdaterOptions.cpp
+++ b/mmc_updater/src/UpdaterOptions.cpp
@@ -34,82 +34,19 @@ UpdateInstaller::Mode stringToMode(const std::string& modeStr)
}
}
-void UpdaterOptions::parseOldFormatArg(const std::string& arg, std::string* key, std::string* value)
-{
- size_t pos = arg.find('=');
- if (pos != std::string::npos)
- {
- *key = arg.substr(0,pos);
- *value = arg.substr(pos+1);
- }
-}
-
-// this is a compatibility function to allow the updater binary
-// to be involved by legacy versions of Mendeley Desktop
-// which used a different syntax for the updater's command-line
-// arguments
-void UpdaterOptions::parseOldFormatArgs(int argc, char** argv)
-{
- for (int i=0; i < argc; i++)
- {
- std::string key;
- std::string value;
-
- parseOldFormatArg(argv[i],&key,&value);
-
- if (key == "CurrentDir")
- {
- // CurrentDir is the directory containing the main application
- // binary. On Mac and Linux this differs from the root of
- // the installation directory
-
-#ifdef PLATFORM_LINUX
- // the main binary is in lib/mendeleydesktop/libexec,
- // go up 3 levels
- installDir = FileUtils::canonicalPath((value + "/../../../").c_str());
-#elif defined(PLATFORM_MAC)
- // the main binary is in Contents/MacOS,
- // go up 2 levels
- installDir = FileUtils::canonicalPath((value + "/../../").c_str());
-#elif defined(PLATFORM_WINDOWS)
- // the main binary is in the root of the install directory
- installDir = value;
-#endif
- }
- else if (key == "TempDir")
- {
- packageDir = value;
- }
- else if (key == "UpdateScriptFileName")
- {
- scriptPath = value;
- }
- else if (key == "AppFileName")
- {
- // TODO - Store app file name
- }
- else if (key == "PID")
- {
- waitPid = static_cast<PLATFORM_PID>(atoll(value.c_str()));
- }
- else if (key == "--main")
- {
- mode = UpdateInstaller::Main;
- }
- }
-}
-
void UpdaterOptions::parse(int argc, char** argv)
{
AnyOption parser;
parser.setOption("install-dir");
parser.setOption("package-dir");
parser.setOption("finish-cmd");
+ parser.setOption("finish-dir");
parser.setOption("script");
parser.setOption("wait");
parser.setOption("mode");
parser.setFlag("version");
parser.setFlag("force-elevated");
+ parser.setFlag("dry-run");
parser.setFlag("auto-close");
parser.processCommandArgs(argc,argv);
@@ -138,18 +75,13 @@ void UpdaterOptions::parse(int argc, char** argv)
{
finishCmd = parser.getValue("finish-cmd");
}
+ if (parser.getValue("finish-dir"))
+ {
+ finishDir = parser.getValue("finish-dir");
+ }
showVersion = parser.getFlag("version");
forceElevated = parser.getFlag("force-elevated");
+ dryRun = parser.getFlag("dry-run");
autoClose = parser.getFlag("auto-close");
-
- if (installDir.empty())
- {
- // if no --install-dir argument is present, try parsing
- // the command-line arguments in the old format (which uses
- // a list of 'Key=Value' args)
- parseOldFormatArgs(argc,argv);
- }
}
-
-