aboutsummaryrefslogtreecommitdiff
path: root/src/dscrsnap-cl.opt
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2012-10-14 03:13:00 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2012-10-14 03:13:00 +0300
commit4253839e72aebd5a71684a13d5a40d70cb34e593 (patch)
treecf94f7c0051eb7bbfeed2e62fe9bef63b685adb7 /src/dscrsnap-cl.opt
parent44b7be0657daf7b07c480ee9212a25e045624686 (diff)
downloadeclat-4253839e72aebd5a71684a13d5a40d70cb34e593.tar.gz
eclat-4253839e72aebd5a71684a13d5a40d70cb34e593.tar.bz2
Implement snapshot-management commands.
* TODO: Update. * configure.ac: Update. * doc/eclat.1: Update. * etc/create-snapshot.fln: New file. * etc/delete-snapshot.fln: New file. * etc/describe-snapshots.fln: New file. * etc/Makefile.am: Add new files. * lib/forlan.c (eval_func): Set return type according to that of the called function. (empty,timestamp): New built-in functions. * src/Makefile.am: Add new files. * src/cresnap.c: New file. * src/delsnap.c: New file. * src/dscrsnap-cl.opt: New file. * src/dscrsnap.c: New file. * src/eclat.c: Register new commands. * src/eclat.h: Add new prototypes. * tests/create-snapshot.at: New file. * tests/Makefile.am: Add new file. * tests/testsuite.at: Likewise.
Diffstat (limited to 'src/dscrsnap-cl.opt')
-rw-r--r--src/dscrsnap-cl.opt61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/dscrsnap-cl.opt b/src/dscrsnap-cl.opt
new file mode 100644
index 0000000..7372daf
--- /dev/null
+++ b/src/dscrsnap-cl.opt
@@ -0,0 +1,61 @@
+/* This file is part of Eclat.
+ Copyright (C) 2012 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/>. */
+
+struct grecs_list *parmlist;
+
+struct param {
+ char *name;
+ unsigned idx;
+ char *value;
+};
+
+static unsigned owner_idx = 1, rstby_idx = 1;
+
+OPTIONS_BEGIN("eclat describe-snapshots",
+ [<describe EC2 snapshots>],
+ [<[SNAP-ID...] [TAG[=VALUE...]]>],
+ [<gnu>],
+ [<nousage>],
+ [<noversion>])
+
+OPTION(owner,u,[<ID>],
+ [<return the snapshots owned by the specified owner>])
+BEGIN
+ struct param *p = grecs_malloc(sizeof(*p));
+ p->name = "Owner";
+ p->idx = owner_idx++;
+ p->value = optarg;
+ grecs_list_append(parmlist, p);
+END
+
+OPTION(restorable-by,r,[<ID>],
+ [<returns snapshots that can be restored by thid ID>])
+BEGIN
+ struct param *p = grecs_malloc(sizeof(*p));
+ p->name = "RestorableBy";
+ p->idx = rstby_idx++;
+ p->value = optarg;
+ grecs_list_append(parmlist, p);
+END
+
+OPTIONS_END
+
+static void
+parse_options(int argc, char *argv[], int *index)
+{
+ parmlist = grecs_list_create();
+ GETOPT(argc, argv, *index, exit(EX_USAGE))
+}

Return to:

Send suggestions and report system problems to the System administrator.