summaryrefslogtreecommitdiffstats
path: root/scratch/bash-3.1-postpatch/examples/loadables/whoami.c
diff options
context:
space:
mode:
Diffstat (limited to 'scratch/bash-3.1-postpatch/examples/loadables/whoami.c')
-rw-r--r--scratch/bash-3.1-postpatch/examples/loadables/whoami.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/scratch/bash-3.1-postpatch/examples/loadables/whoami.c b/scratch/bash-3.1-postpatch/examples/loadables/whoami.c
new file mode 100644
index 0000000..41fd5c4
--- /dev/null
+++ b/scratch/bash-3.1-postpatch/examples/loadables/whoami.c
@@ -0,0 +1,52 @@
+/*
+ * whoami - print out username of current user
+ */
+
+#include <config.h>
+#include <stdio.h>
+
+#include "builtins.h"
+#include "shell.h"
+#include "bashgetopt.h"
+
+whoami_builtin (list)
+ WORD_LIST *list;
+{
+ int opt;
+
+ reset_internal_getopt ();
+ while ((opt = internal_getopt (list, "")) != -1)
+ {
+ switch (opt)
+ {
+ default:
+ builtin_usage ();
+ return (EX_USAGE);
+ }
+ }
+ list = loptend;
+ if (list)
+ {
+ builtin_usage ();
+ return (EX_USAGE);
+ }
+
+ if (current_user.user_name == 0)
+ get_current_user_info ();
+ printf ("%s\n", current_user.user_name);
+ return (EXECUTION_SUCCESS);
+}
+
+char *whoami_doc[] = {
+ "display name of current user",
+ (char *)NULL
+};
+
+struct builtin whoami_struct = {
+ "whoami",
+ whoami_builtin,
+ BUILTIN_ENABLED,
+ whoami_doc,
+ "whoami",
+ 0
+};