mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 22:00:16 +02:00
57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
// SPDX-License-Identifier: MIT
|
|
#include "ArgumentLoader.h"
|
|
#include "Common/cpp-optparse/OptionParser.h"
|
|
|
|
#include "git_version.h"
|
|
|
|
#include <fmt/format.h>
|
|
|
|
namespace FEXServer::Config {
|
|
static fextl::string Version = "FEX-Emu (" GIT_DESCRIBE_STRING ") ";
|
|
|
|
FEXServerOptions Load(int argc, char **argv) {
|
|
FEXServerOptions FEXOptions{};
|
|
optparse::OptionParser Parser = optparse::OptionParser()
|
|
.version(Version);
|
|
|
|
Parser.add_option("-k", "--kill")
|
|
.action("store_true")
|
|
.set_default(false)
|
|
.help("Shutdown an already active FEXServer");
|
|
|
|
Parser.add_option("-f", "--foreground")
|
|
.action("store_true")
|
|
.set_default(false)
|
|
.help("Run this FEXServer in the foreground");
|
|
|
|
Parser.add_option("-p", "--persistent")
|
|
.action("store")
|
|
.type("int")
|
|
.set_default(0)
|
|
.set_optional_value(true)
|
|
.metavar("n")
|
|
.help("Make FEXServer persistent. Optional number of seconds");
|
|
|
|
Parser.add_option("-w", "--wait")
|
|
.action("store_true")
|
|
.set_default(false)
|
|
.help("Wait for the FEXServer to shutdown");
|
|
|
|
Parser.add_option("-v")
|
|
.action("version")
|
|
.help("Version string");
|
|
|
|
optparse::Values Options = Parser.parse_args(argc, argv);
|
|
|
|
FEXOptions.Kill = Options.get("kill");
|
|
FEXOptions.Foreground = Options.get("foreground");
|
|
FEXOptions.Wait = Options.get("wait");
|
|
if (FEXOptions.Wait) {
|
|
FEXOptions.Foreground = true;
|
|
}
|
|
FEXOptions.PersistentTimeout = Options.get("persistent");
|
|
|
|
return FEXOptions;
|
|
}
|
|
}
|