diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2014-02-04 11:59:16 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2014-02-04 12:06:44 +0200 |
commit | 9ab2885b1ab9daef69b231c36f662daae30175b7 (patch) | |
tree | 8cac5f9ca98d95e5e5a30b5af8519e3531575c44 /src/lsaattr.c | |
parent | c3feab15f38588dbd677234c17a109c2378308f7 (diff) | |
download | eclat-9ab2885b1ab9daef69b231c36f662daae30175b7.tar.gz eclat-9ab2885b1ab9daef69b231c36f662daae30175b7.tar.bz2 |
New commands: lsaattr and setaattr.
* TODO: Update.
* doc/Makefile.inc: Add new files.
* doc/eclat-lsaattr.1: New file.
* doc/eclat-setaattr.1: New file.
* etc/Makefile.am (FLNFILES): Add new files.
* etc/describe-image-attribute.fln: New file.
* etc/modify-image-attribute.fln: New file.
* src/Makefile.am (eclat_SOURCES,OPTFILES): Add new files.
* src/eclat.c (cmdtab): New commands: lsaattr and setaattr.
* src/eclat.h (eclat_describe_image_attribute)
(eclat_modify_image_attribute,canonattrname): New protos.
* src/lsaattr.c: New file.
* src/lsiattr.c: Use canonattrname to simplify usage.
* src/lssattr.c (canonattrname): Remove. Use external version.
* src/setaattr-cl.opt: New file.
* src/setaattr.c: New file.
* src/setiattr.c: New file.
* src/util.c (canonattrname): New function.
Diffstat (limited to 'src/lsaattr.c')
-rw-r--r-- | src/lsaattr.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/lsaattr.c b/src/lsaattr.c new file mode 100644 index 0000000..9a9dbe2 --- /dev/null +++ b/src/lsaattr.c @@ -0,0 +1,63 @@ +/* This file is part of Eclat. + Copyright (C) 2012-2014 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/>. */ + +#include "eclat.h" + +static char *attrs[] = { + "description", + "blockDeviceMapping", + "launchPermission", + "productCodes", + "kernel", + "ramdisk", + "sriovNetSupport", + NULL +}; + +int +eclat_describe_image_attribute(eclat_command_env_t *env, int argc, char **argv) +{ + int i; + struct ec2_query *q = env->query; + const char *attrname; + + generic_proginfo->args_doc = "AMI-ID [ATTR]"; + available_attrs = attrs; + generic_proginfo->print_help_hook = list_attrs; + generic_parse_options(env->cmd, + "describe the attribute of an image", + argc, argv, &i); + argv += i; + argc -= i; + + switch (argc) { + default: + die(EX_USAGE, "wrong number of arguments"); + case 2: + attrname = canonattrname(attrs, argv[1], NULL, NULL); + if (!attrname) + die(EX_USAGE, "unrecognized attribute name"); + break; + case 1: + attrname = attrs[0]; + } + + translate_ids(1, argv, MAP_IMAGE); + eclat_query_add_param(q, "ImageId", argv[0]); + eclat_query_add_param(q, "Attribute", attrname); + return 0; +} + |