summaryrefslogtreecommitdiffstats
path: root/src/main.cpp
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2022-07-03 11:24:05 -0400
committerJon Santmyer <jon@jonsantmyer.com>2022-07-03 11:24:05 -0400
commit7d71827c25ff1ab47c03aaa26f63a9a754b3d549 (patch)
tree896eb9b61a3bc3be90d068b12ac38f07b99ffce5 /src/main.cpp
parent3d101c5638ef573993f387a2cecbb794e6e056e6 (diff)
downloadsystemviewer-7d71827c25ff1ab47c03aaa26f63a9a754b3d549.tar.gz
systemviewer-7d71827c25ff1ab47c03aaa26f63a9a754b3d549.tar.bz2
systemviewer-7d71827c25ff1ab47c03aaa26f63a9a754b3d549.zip
Condensed solar system csv files into one.
Add argument parser for help and different systems
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 9ff09a6..5fafaf8 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,21 +1,42 @@
#include <iostream>
#include "game.hpp"
+#include "diargs.hpp"
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
+void
+printusage(int err)
+{
+ std::cout << "systemviewer " << VERSION << std::endl <<
+ "Usage: systemviewer [OPTION]... [FILE]" << std::endl <<
+ "With no FILE, FILE is assumed to be data/sol.csv" << std::endl <<
+ "-h --help : print this message" << std::endl;
+
+ std::exit(err);
+}
+
int
main(int argc, char **argv)
{
- (void)argc;
- (void)argv;
+ std::string system = "dat/sol.csv";
+ bool helpflag;
+
+ diargs::ArgsPair args{argc, argv};
+ diargs::ArgumentList arglist(
+ diargs::OrderedArgument<std::string>(system),
+ diargs::ToggleArgument<bool>("help", 'h', helpflag, true)
+ );
+ diargs::ArgumentParser(printusage, arglist, args);
+
+ if(helpflag) printusage(0);
struct winsize w;
ioctl(STDOUT_FILENO, TIOCGWINSZ, &w);
fcntl(STDIN_FILENO, F_SETFL, fcntl(0, F_GETFL) | O_NONBLOCK);
- Game::setup(w.ws_col, w.ws_row);
+ Game::setup(w.ws_col, w.ws_row, system);
while(Game::running()) {
Game::turn();