summaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
authorPatrick McDermott <patrick.mcdermott@libiquity.com>2021-03-16 09:33:07 (EDT)
committer Patrick McDermott <patrick.mcdermott@libiquity.com>2021-03-16 09:48:11 (EDT)
commitaeb3d25983f4912a00352c82e983da347488fedf (patch)
tree36b348f210c74bf134dafe9507bb17e9a9b3b14e /src/main.c
parentc1c166ec5498a9f07b0ab6e443469c65849468b3 (diff)
downloaddodge-balls-aeb3d25983f4912a00352c82e983da347488fedf.zip
dodge-balls-aeb3d25983f4912a00352c82e983da347488fedf.tar.gz
dodge-balls-aeb3d25983f4912a00352c82e983da347488fedf.tar.bz2
Find games either in build dir or installed
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c
index 64d8e3d..344cdad 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,15 +1,28 @@
+#include <libgen.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "game.h"
int
main(int argc, char *argv[])
{
- char **games;
- int n;
- int i;
+ char *program_dir;
+ const char *games_dir;
+ char **games;
+ int n;
+ int i;
- n = db_games_find(&games);
+ program_dir = realpath(dirname(argv[0]), NULL);
+ if (strcmp(program_dir, ABS_BUILDDIR) == 0) {
+ /* Running in place */
+ games_dir = ABS_BUILDDIR "/games";
+ } else {
+ /* Running from installation */
+ games_dir = GAMESDIR;
+ }
+ free(program_dir);
+ n = db_games_find(games_dir, &games);
printf("%d games:\n", n);
for (i = 0; i < n; ++i) {
printf("\t%s\n", games[i]);