summaryrefslogtreecommitdiffstats
path: root/tools/src/misc/h5delete.c
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2021-05-05 22:07:40 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2021-05-05 22:07:40 (GMT)
commit8d4873173fe95ffd8a274c9d9a6c1e8b5e017957 (patch)
tree10a135eaa95a0dfd54925af438504179c439de17 /tools/src/misc/h5delete.c
parent54c202e4ec4bc9c7e45543cea5b51868a091b3e9 (diff)
downloadhdf5-8d4873173fe95ffd8a274c9d9a6c1e8b5e017957.zip
hdf5-8d4873173fe95ffd8a274c9d9a6c1e8b5e017957.tar.gz
hdf5-8d4873173fe95ffd8a274c9d9a6c1e8b5e017957.tar.bz2
Brings native H5Fdelete implementation from develop
Diffstat (limited to 'tools/src/misc/h5delete.c')
-rw-r--r--tools/src/misc/h5delete.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/tools/src/misc/h5delete.c b/tools/src/misc/h5delete.c
new file mode 100644
index 0000000..3c4f8d5
--- /dev/null
+++ b/tools/src/misc/h5delete.c
@@ -0,0 +1,66 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the COPYING file, which can be found at the root of the source code *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/* h5delete tool
+ *
+ * Deletes storage via H5Fdelete() using the VOL connector specified in the
+ * environment variable.
+ */
+
+#include "H5private.h"
+#include "H5Eprivate.h"
+#include "H5Pprivate.h"
+
+static void usage(void);
+
+static void
+usage(void)
+{
+ HDfprintf(stderr, "Usage: h5delete [-f] <filename>\n");
+}
+
+int
+main(int argc, const char *argv[])
+{
+ hbool_t quiet = FALSE;
+ const char *name = NULL;
+ int ret = 0;
+
+ switch (argc) {
+ case 3:
+ if (HDstrcmp(argv[1], "-f") != 0) {
+ usage();
+ return EXIT_FAILURE;
+ }
+ quiet = TRUE;
+ name = argv[2];
+ break;
+ case 2:
+ name = argv[1];
+ break;
+ default:
+ usage();
+ return EXIT_FAILURE;
+ }
+
+ H5E_BEGIN_TRY
+ {
+ /* Only uses the environment variable at this time */
+ ret = (int)H5Fdelete(name, H5P_DEFAULT);
+ }
+ H5E_END_TRY;
+
+ if (ret < 0 && !quiet)
+ HDfprintf(stderr, "Unable to delete storage at: %s\n", name);
+
+ return ret < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+}