moment/src/gui/ArgumentParser.qml
miruka fda5bc0039 Add CLI arguments parsing + --start-in-tray
- Loading a QML file in place of src/gui/UI.qml is now possible via
  -l / --load-qml instead of taking the first positional argument

- New option to start application in tray without showing a window

- --help and --version
2021-03-03 17:14:55 -04:00

58 lines
1.7 KiB
QML

// Copyright Mirage authors & contributors <https://github.com/mirukana/mirage>
// SPDX-License-Identifier: LGPL-3.0-or-later
pragma Singleton
import QtQuick 2.12
QtObject {
property bool startInTray: false
property string loadQml: ""
readonly property string help: `Usage: ${Qt.application.name} [options]
Options:
-t, --start-in-tray Start in the system tray, without a visible window
-l, --load-qml PATH Override the file to be loaded as src/gui/UI.qml
-V, --version Show the application's version and exit
-h, --help Show this help and exit
Environment variables:
MIRAGE_CONFIG_DIR Override the default configuration folder
MIRAGE_DATA_DIR Override the default application data folder
MIRAGE_CACHE_DIR Override the default cache and downloads folder
`
readonly property bool ready: {
const passedArguments = Qt.application.arguments.slice(1)
while (passedArguments.length) {
switch (passedArguments.shift()) {
case "-h":
case "--help":
print("\n\n" + help.replace(/^ {4}/gm, ""))
Qt.quit()
break
case "-v":
case "--version":
print(Qt.application.version)
Qt.quit()
break
case "-t":
case "--start-in-tray":
startInTray = true
break
case "-l":
case "--load-qml":
loadQml = passedArguments.shift()
break
}
}
return true
}
}