summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wiebenik.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/wiebenik.c b/src/wiebenik.c
new file mode 100644
index 0000000..cee4c9e
--- /dev/null
+++ b/src/wiebenik.c
@@ -0,0 +1,47 @@
+#include <getopt.h>
+#include <pwd.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include "util/versie.h"
+#include "util/error.h"
+#include "util/debug.h"
+
+static void usage(FILE *f) {
+ fprintf(f,
+ "Gebruik: wiebenik [-hV]\n"
+ "\n"
+ "Laat zien wie jij bent"
+ "\n"
+ " -h Toon deze hulptekst\n"
+ " -V Toon versienummer\n");
+}
+
+// Returns pointer to argument array containing the file names
+static char** parse_options(int argc, char **argv) {
+ int opt;
+ while ((opt = getopt(argc, argv, "hV")) != -1) {
+ switch (opt) {
+ case 'h':
+ usage(stdout);
+ exit(0);
+
+ case 'V':
+ drukkedoos_print_versie(stdout, "omd");
+ exit(0);
+
+ case '?':
+ usage(stderr);
+ exit(1);
+ }
+ }
+
+ return argv + optind;
+}
+
+int entry_wiebenik(int argc, char **argv) {
+ parse_options(argc, argv);
+ struct passwd *pw = getpwuid(geteuid());
+ puts(pw->pw_name);
+ return 0;
+}