aboutsummaryrefslogtreecommitdiff
path: root/src/lsaattr.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2014-02-04 11:59:16 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2014-02-04 12:06:44 +0200
commit9ab2885b1ab9daef69b231c36f662daae30175b7 (patch)
tree8cac5f9ca98d95e5e5a30b5af8519e3531575c44 /src/lsaattr.c
parentc3feab15f38588dbd677234c17a109c2378308f7 (diff)
downloadeclat-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.c63
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;
+}
+

Return to:

Send suggestions and report system problems to the System administrator.