juk3n/fluffypublic Fork
⑂ 371d0e7
Commits
⬇ Clone ▾
git clone https://git.rickub.com/juk3n/fluffy.git
git clone ssh://git@rickub.com/juk3n/fluffy.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

added treating --symbols as commands

juk3n committed 2024-07-04T16:48:42+02:00 Browse files
371d0e7 parent: 6b30a5c
modified app/src/main.cpp +29 -3
@@ -84,6 +84,15 @@ auto handleCommand(const std::string& command, const std::vector<std::string>& a
8484 std::string gameName{arguments[0]};
8585 runGame(gameName);
8686 }
87+ else if (command == "--version") {
88+ std::cout << "fluffy v0.1.1" << std::endl;
89+ }
90+ else if (command == "--help") {
91+ std::cout << "help" << std::endl;
92+ }
93+ else {
94+ std::cout << "fluffy: '" << command << "' is not a fluffy command. See 'fluffy --help'" << std::endl;
95+ }
8796 }
8897
8998 auto style() -> ButtonOption {
@@ -136,6 +145,20 @@ auto runConsoleApp() -> void {
136145
137146 }
138147
148+auto handleFlags(std::vector<std::string> flags) -> void {
149+ for (const auto& flag : flags) {
150+ if (flag == "--version") {
151+ std::cout << "fluffy v0.1.1" << std::endl;
152+ }
153+ else if (flag == "--help") {
154+ std::cout << "help" << std::endl;
155+ }
156+ else {
157+ std::cout << "fluffy: '" << flag << "' is not a fluffy command. See 'fluffy --help'" << std::endl;
158+ }
159+ }
160+}
161+
139162 auto getExecutablePath() -> std::filesystem::path {
140163 char result[PATH_MAX];
141164 ssize_t count = readlink("/proc/self/exe", result, PATH_MAX);
@@ -146,7 +169,8 @@ auto parseFlags(int argc, char const *argv[]) -> std::vector<std::string> {
146169 std::vector<std::string> flags;
147170 for (int i = 1; i < argc; i ++) {
148171 std::string appArgument = argv[i];
149- if (appArgument[0] == '-') flags.emplace_back(appArgument);
172+ if (appArgument.size() < 2) continue;
173+ if (appArgument[0] == '-' and appArgument[1] != '-') flags.emplace_back(appArgument);
150174 }
151175 return flags;
152176 }
@@ -156,7 +180,8 @@ auto parseCommand(int argc, char const* argv[]) {
156180 std::vector<std::string> arguments{};
157181 for (int i = 1; i < argc; i ++) {
158182 std::string appArgument = argv[i];
159- if (appArgument[0] != '-') {
183+ if (appArgument.size() < 2) continue;
184+ if ((appArgument[0] == '-' and appArgument[1] == '-') or appArgument[0] != '-') {
160185 if (command == "") command = appArgument;
161186 else arguments.emplace_back(appArgument);
162187 }
@@ -175,7 +200,8 @@ auto main(int argc, char const *argv[]) -> int {
175200 auto flags = parseFlags(argc, argv);
176201 auto [command, arguments] = parseCommand(argc, argv);
177202
178- handleCommand(command, arguments, database);
203+ handleFlags(flags);
204+ if (command != "") handleCommand(command, arguments, database);
179205 }
180206 else {
181207 runConsoleApp();
@@ -84,6 +84,15 @@ auto handleCommand(const std::string& command, const std::vector<std::string>& a
84 std::string gameName{arguments[0]};84 std::string gameName{arguments[0]};
85 runGame(gameName);85 runGame(gameName);
86 }86 }
87+ else if (command == "--version") {
88+ std::cout << "fluffy v0.1.1" << std::endl;
89+ }
90+ else if (command == "--help") {
91+ std::cout << "help" << std::endl;
92+ }
93+ else {
94+ std::cout << "fluffy: '" << command << "' is not a fluffy command. See 'fluffy --help'" << std::endl;
95+ }
87 }96 }
88 97
89 auto style() -> ButtonOption {98 auto style() -> ButtonOption {
@@ -136,6 +145,20 @@ auto runConsoleApp() -> void {
136 145
137 }146 }
138 147
148+auto handleFlags(std::vector<std::string> flags) -> void {
149+ for (const auto& flag : flags) {
150+ if (flag == "--version") {
151+ std::cout << "fluffy v0.1.1" << std::endl;
152+ }
153+ else if (flag == "--help") {
154+ std::cout << "help" << std::endl;
155+ }
156+ else {
157+ std::cout << "fluffy: '" << flag << "' is not a fluffy command. See 'fluffy --help'" << std::endl;
158+ }
159+ }
160+}
161+
139 auto getExecutablePath() -> std::filesystem::path {162 auto getExecutablePath() -> std::filesystem::path {
140 char result[PATH_MAX];163 char result[PATH_MAX];
141 ssize_t count = readlink("/proc/self/exe", result, PATH_MAX);164 ssize_t count = readlink("/proc/self/exe", result, PATH_MAX);
@@ -146,7 +169,8 @@ auto parseFlags(int argc, char const *argv[]) -> std::vector<std::string> {
146 std::vector<std::string> flags;169 std::vector<std::string> flags;
147 for (int i = 1; i < argc; i ++) {170 for (int i = 1; i < argc; i ++) {
148 std::string appArgument = argv[i];171 std::string appArgument = argv[i];
149- if (appArgument[0] == '-') flags.emplace_back(appArgument);172+ if (appArgument.size() < 2) continue;
173+ if (appArgument[0] == '-' and appArgument[1] != '-') flags.emplace_back(appArgument);
150 }174 }
151 return flags;175 return flags;
152 }176 }
@@ -156,7 +180,8 @@ auto parseCommand(int argc, char const* argv[]) {
156 std::vector<std::string> arguments{};180 std::vector<std::string> arguments{};
157 for (int i = 1; i < argc; i ++) {181 for (int i = 1; i < argc; i ++) {
158 std::string appArgument = argv[i];182 std::string appArgument = argv[i];
159- if (appArgument[0] != '-') {183+ if (appArgument.size() < 2) continue;
184+ if ((appArgument[0] == '-' and appArgument[1] == '-') or appArgument[0] != '-') {
160 if (command == "") command = appArgument;185 if (command == "") command = appArgument;
161 else arguments.emplace_back(appArgument);186 else arguments.emplace_back(appArgument);
162 }187 }
@@ -175,7 +200,8 @@ auto main(int argc, char const *argv[]) -> int {
175 auto flags = parseFlags(argc, argv);200 auto flags = parseFlags(argc, argv);
176 auto [command, arguments] = parseCommand(argc, argv);201 auto [command, arguments] = parseCommand(argc, argv);
177 202
178- handleCommand(command, arguments, database);203+ handleFlags(flags);
204+ if (command != "") handleCommand(command, arguments, database);
179 }205 }
180 else {206 else {
181 runConsoleApp();207 runConsoleApp();