view simtool/script.c @ 1:2071b28cd0c7

simtool: first refactored version
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 11 Feb 2021 23:04:28 +0000
parents
children 9c10afbb745a
line wrap: on
line source

/*
 * This module implements the exec command, which is our scripting facility.
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>

cmd_exec(argc, argv)
	char **argv;
{
	FILE *f;
	char linebuf[512], *cp;
	int lineno, retval = 0;

	f = fopen(argv[1], "r");
	if (!f) {
		perror(argv[1]);
		return(-1);
	}
	for (lineno = 1; fgets(linebuf, sizeof linebuf, f); lineno++) {
		cp = index(linebuf, '\n');
		if (!cp) {
			fprintf(stderr, "%s line %d: missing newline\n",
				argv[1], lineno);
			fclose(f);
			return(-1);
		}
		*cp = '\0';
		retval = simtool_dispatch_cmd(linebuf, 1);
		if (retval)
			break;
	}
	fclose(f);
	return(retval);
}