summaryrefslogtreecommitdiffstats
path: root/src/yuzu_cmd/yuzu.cpp
diff options
context:
space:
mode:
authorlat9nq <lat9nq@gmail.com>2022-03-15 06:05:55 +0100
committerlat9nq <lat9nq@gmail.com>2022-03-15 08:48:40 +0100
commit24d51e1c925896e18e4536916b8c80f0b41e54fb (patch)
treef9fa18cfbfbeb28484ac257f11de3ab836883e33 /src/yuzu_cmd/yuzu.cpp
parentMerge pull request #8008 from ameerj/rescale-offsets-array (diff)
downloadyuzu-24d51e1c925896e18e4536916b8c80f0b41e54fb.tar
yuzu-24d51e1c925896e18e4536916b8c80f0b41e54fb.tar.gz
yuzu-24d51e1c925896e18e4536916b8c80f0b41e54fb.tar.bz2
yuzu-24d51e1c925896e18e4536916b8c80f0b41e54fb.tar.lz
yuzu-24d51e1c925896e18e4536916b8c80f0b41e54fb.tar.xz
yuzu-24d51e1c925896e18e4536916b8c80f0b41e54fb.tar.zst
yuzu-24d51e1c925896e18e4536916b8c80f0b41e54fb.zip
Diffstat (limited to '')
-rw-r--r--src/yuzu_cmd/yuzu.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/yuzu_cmd/yuzu.cpp b/src/yuzu_cmd/yuzu.cpp
index b44ea0cc4..f6d563017 100644
--- a/src/yuzu_cmd/yuzu.cpp
+++ b/src/yuzu_cmd/yuzu.cpp
@@ -66,7 +66,8 @@ static void PrintHelp(const char* argv0) {
"-f, --fullscreen Start in fullscreen mode\n"
"-h, --help Display this help and exit\n"
"-v, --version Output version information and exit\n"
- "-p, --program Pass following string as arguments to executable\n";
+ "-p, --program Pass following string as arguments to executable\n"
+ "-c, --config Load the specified configuration file\n";
}
static void PrintVersion() {
@@ -78,7 +79,6 @@ int main(int argc, char** argv) {
Common::Log::Initialize();
Common::Log::SetColorConsoleBackendEnabled(true);
Common::DetachedTasks detached_tasks;
- Config config;
int option_index = 0;
#ifdef _WIN32
@@ -91,19 +91,24 @@ int main(int argc, char** argv) {
}
#endif
std::string filepath;
+ std::optional<std::string> config_path;
+ std::string program_args;
bool fullscreen = false;
static struct option long_options[] = {
+ // clang-format off
{"fullscreen", no_argument, 0, 'f'},
{"help", no_argument, 0, 'h'},
{"version", no_argument, 0, 'v'},
{"program", optional_argument, 0, 'p'},
+ {"config", required_argument, 0, 'c'},
{0, 0, 0, 0},
+ // clang-format on
};
while (optind < argc) {
- int arg = getopt_long(argc, argv, "g:fhvp::", long_options, &option_index);
+ int arg = getopt_long(argc, argv, "g:fhvp::c:", long_options, &option_index);
if (arg != -1) {
switch (static_cast<char>(arg)) {
case 'f':
@@ -117,9 +122,12 @@ int main(int argc, char** argv) {
PrintVersion();
return 0;
case 'p':
- Settings::values.program_args = argv[optind];
+ program_args = argv[optind];
++optind;
break;
+ case 'c':
+ config_path = optarg;
+ break;
}
} else {
#ifdef _WIN32
@@ -131,6 +139,12 @@ int main(int argc, char** argv) {
}
}
+ Config config{config_path};
+
+ if (!program_args.empty()) {
+ Settings::values.program_args = program_args;
+ }
+
#ifdef _WIN32
LocalFree(argv_w);
#endif