mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-18 03:15:34 +08:00
Cmd.line arg --skipsa to skip "single application check". Allows to run multiple clients on one machine.
This commit is contained in:
committed by
Mat Sutcliffe
parent
4e20c20274
commit
f080f0bb86
@@ -983,6 +983,11 @@ namespace BlackCore
|
|||||||
"shared");
|
"shared");
|
||||||
this->addParserOption(m_cmdSharedDir);
|
this->addParserOption(m_cmdSharedDir);
|
||||||
|
|
||||||
|
// Skip single application check
|
||||||
|
m_cmdSkipSingleApp = QCommandLineOption({ "skipsa", "skipsingleapp" },
|
||||||
|
QCoreApplication::translate("application", "Skip the single app.test."));
|
||||||
|
this->addParserOption(m_cmdSkipSingleApp);
|
||||||
|
|
||||||
// reset caches upfront
|
// reset caches upfront
|
||||||
m_cmdClearCache = QCommandLineOption({ "ccache", "clearcache" },
|
m_cmdClearCache = QCommandLineOption({ "ccache", "clearcache" },
|
||||||
QCoreApplication::translate("application", "Clear (reset) the caches."));
|
QCoreApplication::translate("application", "Clear (reset) the caches."));
|
||||||
@@ -990,7 +995,7 @@ namespace BlackCore
|
|||||||
|
|
||||||
// test crashpad upload
|
// test crashpad upload
|
||||||
m_cmdTestCrashpad = QCommandLineOption({ "testcp", "testcrashpad" },
|
m_cmdTestCrashpad = QCommandLineOption({ "testcp", "testcrashpad" },
|
||||||
QCoreApplication::translate("application", "Simulate crashpad situation."));
|
QCoreApplication::translate("application", "Trigger crashpad situation."));
|
||||||
this->addParserOption(m_cmdTestCrashpad);
|
this->addParserOption(m_cmdTestCrashpad);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1321,6 +1326,11 @@ namespace BlackCore
|
|||||||
return this->isParserOptionSet("installer");
|
return this->isParserOptionSet("installer");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CApplication::skipSingleApplicationCheck() const
|
||||||
|
{
|
||||||
|
return this->isParserOptionSet(m_cmdSkipSingleApp);
|
||||||
|
}
|
||||||
|
|
||||||
bool CApplication::isParserOptionSet(const QCommandLineOption &option) const
|
bool CApplication::isParserOptionSet(const QCommandLineOption &option) const
|
||||||
{
|
{
|
||||||
return m_parser.isSet(option);
|
return m_parser.isSet(option);
|
||||||
@@ -1354,12 +1364,6 @@ namespace BlackCore
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_singleApplication && m_alreadyRunning)
|
|
||||||
{
|
|
||||||
this->cmdLineErrorMessage("Program must only run once");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// we call parse because we also want to display a GUI error message when applicable
|
// we call parse because we also want to display a GUI error message when applicable
|
||||||
const QStringList args(QCoreApplication::instance()->arguments());
|
const QStringList args(QCoreApplication::instance()->arguments());
|
||||||
if (!m_parser.parse(args))
|
if (!m_parser.parse(args))
|
||||||
@@ -1368,6 +1372,12 @@ namespace BlackCore
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_singleApplication && m_alreadyRunning && !this->skipSingleApplicationCheck())
|
||||||
|
{
|
||||||
|
this->cmdLineErrorMessage("Program must only run once");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// help/version
|
// help/version
|
||||||
if (m_parser.isSet(m_cmdHelp))
|
if (m_parser.isSet(m_cmdHelp))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -270,6 +270,9 @@ namespace BlackCore
|
|||||||
//! Called by installer?
|
//! Called by installer?
|
||||||
bool isInstallerOptionSet() const;
|
bool isInstallerOptionSet() const;
|
||||||
|
|
||||||
|
//! Skip the single application check
|
||||||
|
bool skipSingleApplicationCheck() const;
|
||||||
|
|
||||||
//! Delegates to QCommandLineParser::isSet
|
//! Delegates to QCommandLineParser::isSet
|
||||||
bool isParserOptionSet(const QCommandLineOption &option) const;
|
bool isParserOptionSet(const QCommandLineOption &option) const;
|
||||||
|
|
||||||
@@ -625,21 +628,22 @@ namespace BlackCore
|
|||||||
static void registerMetadata();
|
static void registerMetadata();
|
||||||
|
|
||||||
// cmd parsing
|
// cmd parsing
|
||||||
QList<QCommandLineOption> m_allOptions; //!< all registered options
|
QList<QCommandLineOption> m_allOptions; //!< All registered options
|
||||||
QCommandLineParser m_parser; //!< cmd parser
|
QCommandLineParser m_parser; //!< cmd parser
|
||||||
QCommandLineOption m_cmdHelp {"help"}; //!< help option
|
QCommandLineOption m_cmdHelp {"help"}; //!< help option
|
||||||
QCommandLineOption m_cmdVersion {"version"}; //!< version option
|
QCommandLineOption m_cmdVersion {"version"}; //!< version option
|
||||||
QCommandLineOption m_cmdDBusAddress {"emptyDBus"}; //!< DBus address
|
QCommandLineOption m_cmdDBusAddress {"emptyDBus"}; //!< DBus address
|
||||||
QCommandLineOption m_cmdDevelopment {"dev"}; //!< Development flag
|
QCommandLineOption m_cmdDevelopment {"dev"}; //!< Development flag
|
||||||
QCommandLineOption m_cmdSharedDir {"shared"}; //!< Shared directory
|
QCommandLineOption m_cmdSharedDir {"shared"}; //!< Shared directory
|
||||||
QCommandLineOption m_cmdClearCache {"clearcache"}; //!< Clear cache
|
QCommandLineOption m_cmdClearCache {"clearcache"}; //!< Clear cache
|
||||||
QCommandLineOption m_cmdTestCrashpad {"testcrashpad"}; //!< Test a crasphpad upload
|
QCommandLineOption m_cmdTestCrashpad {"testcrashpad"}; //!< Test a crasphpad upload
|
||||||
bool m_parsed = false; //!< Parsing accomplished?
|
QCommandLineOption m_cmdSkipSingleApp {"skipsa"}; //!< Skip test for single application
|
||||||
bool m_started = false; //!< started with success?
|
bool m_parsed = false; //!< Parsing accomplished?
|
||||||
bool m_singleApplication = true; //!< only one instance of that application
|
bool m_started = false; //!< Started with success?
|
||||||
bool m_alreadyRunning = false; //!< Application already running
|
bool m_singleApplication = true; //!< Only one instance of that application
|
||||||
std::atomic_bool m_shutdown { false }; //!< is being shutdown?
|
bool m_alreadyRunning = false; //!< Application already running
|
||||||
std::atomic_bool m_shutdownInProgress { false }; //!< shutdown in progress?
|
std::atomic_bool m_shutdown { false }; //!< Is being shutdown?
|
||||||
|
std::atomic_bool m_shutdownInProgress { false }; //!< shutdown in progress?
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//! Problem with network access manager
|
//! Problem with network access manager
|
||||||
|
|||||||
Reference in New Issue
Block a user