diff libcommon/exit.c @ 9:c9ef9e91dd8e

new libcommon, initial version
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 14 Mar 2021 06:55:38 +0000
parents
children 812779459ddd
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libcommon/exit.c	Sun Mar 14 06:55:38 2021 +0000
@@ -0,0 +1,38 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+
+extern unsigned calypso_fd;
+extern FILE *cpipeF;
+
+good_exit()
+{
+	if (calypso_fd) {
+		fputs("poweroff\n", cpipeF);
+		fflush(cpipeF);
+	}
+	exit(0);
+}
+
+cmd_exit(argc, argv)
+	char **argv;
+{
+	if (argc < 2)
+		good_exit();
+	if (!calypso_fd) {
+		fprintf(stderr,
+	"error: exit arguments are only meaningful with Calypso back end\n");
+		return(-1);
+	}
+	if (!strcmp(argv[1], "bare"))
+		exit(0);
+	if (!strcmp(argv[1], "iota-off")) {
+		fputs("poweroff\n", cpipeF);
+		fflush(cpipeF);
+		exit(0);
+	}
+	fprintf(stderr, "error: \"%s\" is not an understood exit mode\n",
+		argv[1]);
+	return(-1);
+}