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

#define	MAXARG	20

main(argc,argv)
int	argc;
char	*argv[];
{
	char buf[BUFSIZ];
	char *args[MAXARG+2];
	int arg=0;
	char *p,*q;
	int i;
	FILE *fp;

	if(argc < 3) { 
		printf("no file or command list!\n");
		exit(1);
		}


	if((fp=fopen(argv[1],"r")) == NULL) {
		printf("cant open file!\n");
		exit(1);
		}
	fgets(buf,BUFSIZ,fp);
	fclose(fp);
	if((p=index(buf,'\n')) != NULL)
		*p = '\0';

	p=buf;
	while((q=index(p,' ')) != NULL) {
		if(arg == MAXARG) {
			printf("Too many args!\n");
			exit(1);
			}
		args[arg++]=p;
		*q = '\0';
		p=++q;
		}
	args[arg++]=p;
	args[arg]=NULL;
	
	for(i=2; i<argc; i++)
		if(strcmp(args[0],argv[i]) == 0) {
			execvp(args[0],args);
			printf("exec failed for '%s'\n",args[0]);
			exit(1);
			}
	printf("invalid command '%s'\n",args[0]);
	exit(1);
}
