Revision
645
Author
wsiegrist@apple.com
Date
2009-12-07 13:34:08 -0800 (Mon, 07 Dec 2009)

Log Message

Add -f option to force operations to do unsafe things.

Modified Paths

Diff

Modified: branches/PR-7250612/darwinup/main.cpp (644 => 645)


--- branches/PR-7250612/darwinup/main.cpp	2009-12-07 16:52:13 UTC (rev 644)
+++ branches/PR-7250612/darwinup/main.cpp	2009-12-07 21:34:08 UTC (rev 645)
@@ -36,6 +36,7 @@
 	fprintf(stderr, "usage:    %s [-v] [-p DIR] [command] [args]          \n", progname);
 	fprintf(stderr, "                                                               \n");
 	fprintf(stderr, "options:                                                       \n");
+	fprintf(stderr, "          -f         force operation to succeed at all costs   \n");
 	fprintf(stderr, "          -p DIR     operate on roots under DIR (default: /)   \n");
 	fprintf(stderr, "          -v         verbose (use -vv for extra verbosity)     \n");
 	fprintf(stderr, "                                                               \n");
@@ -50,6 +51,7 @@
 
 // our globals
 uint32_t verbosity;
+uint32_t force;
 
 int main(int argc, char* argv[]) {
 	char* progname = strdup(basename(argv[0]));      
@@ -57,12 +59,12 @@
 	char* path = NULL;
 
 	int ch;
-	while ((ch = getopt(argc, argv, "p:v")) != -1) {
+	while ((ch = getopt(argc, argv, "fp:v")) != -1) {
 		switch (ch) {
-		case 'v':
-			verbosity <<= 1;
-			verbosity |= VERBOSE;
-			break;
+		case 'f':
+				fprintf(stderr, "DEBUG: forcing operations\n");
+				force = 1;
+				break;
 		case 'p':
 				if (optarg[0] != '/') {
 					fprintf(stderr, "Error: -p option must be an absolute path\n");
@@ -72,11 +74,15 @@
 					fprintf(stderr, "Error: -p option value is too long \n");
 					exit(4);
 				}
-			join_path(&path, optarg, "/");
-			break;
+				join_path(&path, optarg, "/");
+				break;
+		case 'v':
+				verbosity <<= 1;
+				verbosity |= VERBOSE;
+				break;
 		case '?':
 		default:
-			usage(progname);
+				usage(progname);
 		}
 	}
 	argc -= optind;