socsvn commit: r323786 - soc2017/kneitinger/libbe-head/usr.bin/be
kneitinger at FreeBSD.org
kneitinger at FreeBSD.org
Wed Jun 21 08:27:35 UTC 2017
Author: kneitinger
Date: Wed Jun 21 08:27:33 2017
New Revision: 323786
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=323786
Log:
Add parser for be destroy command
Modified:
soc2017/kneitinger/libbe-head/usr.bin/be/be.c
Modified: soc2017/kneitinger/libbe-head/usr.bin/be/be.c
==============================================================================
--- soc2017/kneitinger/libbe-head/usr.bin/be/be.c Wed Jun 21 07:14:10 2017 (r323785)
+++ soc2017/kneitinger/libbe-head/usr.bin/be/be.c Wed Jun 21 08:27:33 2017 (r323786)
@@ -147,7 +147,54 @@
static int
be_destroy( int argc, char *argv[])
{
- return(EX_USAGE);
+ int opt;
+ bool force;
+ char *bootenv;
+ char *snapshot;
+
+ force = false;
+ while((opt = getopt(argc, argv, "F")) != -1) {
+ switch(opt) {
+ case 'F':
+ force = true;
+ break;
+ default:
+ fprintf(stderr, "be destroy: unknown option '-%c'\n",
+ optopt);
+ usage(false);
+ return(EX_USAGE);
+ }
+ }
+
+ argc -= optind;
+ argv += optind;
+
+ if(argc != 1) {
+ fprintf(stderr, "be destroy: wrong number of arguments\n");
+ usage(false);
+ return(EX_USAGE);
+ }
+
+ /* Determine bootenv name, and snapshot if provided */
+ char *buffer = malloc((strlen(argv[0])+1) * sizeof(char));
+ strcpy(buffer,argv[0]);
+ char *delimiter;
+ if( (delimiter = strchr(buffer, '@')) != NULL) {
+ *delimiter = '\0';
+ snapshot = delimiter + sizeof(char);
+ if(strchr(snapshot, '@') != NULL) {
+ fprintf(stderr, "be destroy: invalid snapshot name\n");
+ usage(false);
+ free(buffer);
+ return(EX_USAGE);
+ }
+ }
+ bootenv = buffer;
+
+ /* destroy logic goes here */
+
+ free(buffer);
+ return 0;
}
static int
More information about the svn-soc-all
mailing list