view 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 source

#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);
}