aboutsummaryrefslogtreecommitdiff
path: root/src/rpt.c
blob: f0a9472fe3c69a410ac9a6c8e23ce06882e120c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#define _GNU_SOURCE		/* getopt_long */

#include <getopt.h>
#include <stdio.h>
#include <sys/wait.h>
#include <unistd.h>

void
print_usage(FILE *output)
{
	fprintf(output, "Usage:\n");
	fprintf(output, "rpt [-n | --count COUNT] [-f | --force] COMMAND\n");
	fprintf(output, "rpt [-h | --help]\n");
	fprintf(output, "rpt [-V | --version]\n");
}

int
main(int argc, char* argv[])
{
	struct option const opts[] = {
		{"count", required_argument, NULL, 'n'},
		{"force", no_argument, NULL, 'f'},
		{"version", no_argument, NULL, 'V'},
		{"help", no_argument, NULL, 'h'},
		{NULL, 0, NULL, 0}
	};

	opterr = 0;		/* dismiss getopt error message */
	int opt;

	char *strcount = NULL;
	long count;

	void (*handle_exit_f)(int status);

	while ((opt = getopt_long(argc, argv, "+:n:fVh", opts, NULL)) >= 0)
	{
		switch(opt)
		{
		case 'n':
			strcount = optarg;
			break;
		case 'f':

		case ':':
			fprintf(stderr, "COUNT value missing.\n");
			print_usage(stderr);
			return 1;
		default:
			print_usage(stderr);
			return 1;
		}
	}

	return 0;
}