1/*	$OpenBSD: main.c,v 1.16 2023/08/20 15:19:34 visa Exp $	*/
2/*
3 *	Written by Artur Grabowski <art@openbsd.org> 2002 Public Domain
4 */
5
6#include <limits.h>
7#include <stdio.h>
8#include <stdlib.h>
9#include <unistd.h>
10
11#include "main.h"
12
13int
14main(int argc, char **argv)
15{
16	extern char *__progname;
17	int n, ret, c;
18
19	ret = 0;
20	while ((c = getopt(argc, argv, "efFiIjlpPrR:stT:")) != -1) {
21		switch (c) {
22		case 'e':
23			ret |= do_exec(argv[0]);
24			break;
25		case 'f':
26			ret |= check_inheritance();
27			break;
28		case 'F':
29			ret |= do_fdpass();
30			break;
31		case 'i':
32			ret |= do_timer();
33			break;
34		case 'I':
35			ret |= do_invalid_timer();
36			break;
37		case 'j':
38			ret |= do_reset_timer();
39			break;
40		case 'l':
41			ret |= do_flock();
42			break;
43		case 'p':
44			ret |= do_pipe();
45			break;
46		case 'P':
47			ret |= do_process();
48			break;
49		case 'r':
50			ret |= do_random();
51			break;
52		case 'R':
53			n = strtonum(optarg, 1, INT_MAX, NULL);
54			ret |= do_regress(n);
55			break;
56		case 's':
57			ret |= do_signal();
58			break;
59		case 't':
60			ret |= do_tun();
61			break;
62		case 'T':
63			n = strtonum(optarg, 1, INT_MAX, NULL);
64			ret |= do_pty(n);
65			break;
66		default:
67			fprintf(stderr, "usage: %s -[fFiIlpPrstT] [-R n]\n",
68			    __progname);
69			exit(1);
70		}
71	}
72
73	return (ret);
74}
75