aboutsummaryrefslogtreecommitdiff
path: root/src/mktags-cl.opt
blob: f49015d69050fa6d869d6fc465e9527a655ae001 (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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/* This file is part of Eclat.
   Copyright (C) 2012-2023 Sergey Poznyakoff.
 
   Eclat is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3, or (at your option)
   any later version.
 
   Eclat is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License
   along with Eclat.  If not, see <http://www.gnu.org/licenses/>. */

static char *from_file;
static struct grecs_list *reslist;

struct resource {
        char *map;
        char *resid;
};

ECLAT_CL_BEGIN([<create tags for the specified resources>],
	       [<TAG[=VALUE] [TAG[=VALUE...]]>])

OPTION(resource-id,r,[<[MAP:]ID>],
       [<resource for which to create the tags>])
BEGIN
        struct resource *res = grecs_malloc(sizeof(*res));
	char *p = strchr(optarg, ':');
	if (p) {
		res->map = optarg;
		*p++ = 0;
		res->resid = p;
	} else {
		res->map = NULL;
		res->resid = optarg;
	}
	grecs_list_append(reslist, res);
END

OPTION(instance,i,[<ID>],
       [<instance ID>])
BEGIN
	struct resource *res = grecs_malloc(sizeof(*res));
	res->map = MAP_INSTANCE;
	res->resid = optarg;
	grecs_list_append(reslist, res);
END

OPTION(volume,v,[<ID>],
       [<volume ID>])
BEGIN
	struct resource *res = grecs_malloc(sizeof(*res));
	res->map = MAP_VOLUME;
	res->resid = optarg;
	grecs_list_append(reslist, res);
END

OPTION(ami,a,[<ID>],
       [<AMI ID>])
BEGIN
	struct resource *res = grecs_malloc(sizeof(*res));
	res->map = MAP_IMAGE;
	res->resid = optarg;
	grecs_list_append(reslist, res);
END

OPTION(snapshot,s,[<ID>],
       [<snapshot ID>])
BEGIN
	struct resource *res = grecs_malloc(sizeof(*res));
	res->map = MAP_SNAPSHOT;
	res->resid = optarg;
	grecs_list_append(reslist, res);
END

OPTION(internet-gateway,g,[<ID>],
       [<internet gateway ID>])
BEGIN
	struct resource *res = grecs_malloc(sizeof(*res));
	res->map = MAP_IGW;
	res->resid = optarg;
	grecs_list_append(reslist, res);
END
	

OPTION(from-file,T,[<FILE>],
       [<read tags from FILE>])
BEGIN
	from_file = optarg;
END

ECLAT_CL_END

ECLAT_CL_PARSER(parse_options, [<int argc, char *argv[], int *index>],[<
{
	reslist = grecs_list_create();
	GETOPT(argc, argv, *index, exit(EX_USAGE))
}
>])

Return to:

Send suggestions and report system problems to the System administrator.