/* This file is part of Eclat. Copyright (C) 2012-2015 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 . */ static char *from_file; static struct grecs_list *reslist; struct resource { char *map; char *resid; }; ECLAT_CL_BEGIN([], []) OPTION(resource-id,r,[<[MAP:]ID>], []) 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,[], []) BEGIN struct resource *res = grecs_malloc(sizeof(*res)); res->map = MAP_INSTANCE; res->resid = optarg; grecs_list_append(reslist, res); END OPTION(volume,v,[], []) BEGIN struct resource *res = grecs_malloc(sizeof(*res)); res->map = MAP_VOLUME; res->resid = optarg; grecs_list_append(reslist, res); END OPTION(ami,a,[], []) BEGIN struct resource *res = grecs_malloc(sizeof(*res)); res->map = MAP_IMAGE; res->resid = optarg; grecs_list_append(reslist, res); END OPTION(snapshot,s,[], []) BEGIN struct resource *res = grecs_malloc(sizeof(*res)); res->map = MAP_SNAPSHOT; res->resid = optarg; grecs_list_append(reslist, res); END OPTION(from-file,T,[], []) BEGIN from_file = optarg; END ECLAT_CL_END ECLAT_CL_PARSER(parse_options, [],[< { reslist = grecs_list_create(); GETOPT(argc, argv, *index, exit(EX_USAGE)) } >])