summaryrefslogtreecommitdiff
path: root/src/options
diff options
context:
space:
mode:
Diffstat (limited to 'src/options')
-rw-r--r--src/options/options.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/options/options.c b/src/options/options.c
index 4488837..7ac35c7 100644
--- a/src/options/options.c
+++ b/src/options/options.c
@@ -1,5 +1,6 @@
#include <stdio.h>
#include <cargs.h>
+#include <common.h>
#include "options.h"
static struct cag_option opts[] = {
@@ -11,6 +12,13 @@ static struct cag_option opts[] = {
.description = "The filename of the main script. (default: main.lua)"
},
{
+ .identifier = 'e',
+ .access_letters = NULL,
+ .access_name = "version",
+ .value_name = NULL,
+ .description = "Show the honey version"
+ },
+ {
.identifier = 'h',
.access_letters = "h",
.access_name = "help",
@@ -29,6 +37,12 @@ void print_help(char *program_name)
enum outcomes_t parse_options(struct honey_options *options, int argc, char **argv)
{
+ /* check if we even need to parse at all */
+ if (argc == 1) {
+ print_help(argv[0]);
+ return EXIT_SUCCESS;
+ }
+
/* default values */
options->script_file = "main.lua";
@@ -47,6 +61,15 @@ enum outcomes_t parse_options(struct honey_options *options, int argc, char **ar
case 'h':
print_help(argv[0]);
return EXIT_SUCCESS;
+ case 'e':
+ printf(
+ "honey v%d.%d.%d -- %s\n",
+ HONEY_VERSION_MAJOR,
+ HONEY_VERSION_MINOR,
+ HONEY_VERSION_PATCH,
+ HONEY_VERSION_STR
+ );
+ return EXIT_SUCCESS;
default:
return EXIT_FAILURE;
}