New API: ntfsresize.
[libguestfs.git] / daemon / parted.c
index e0183fb..99417c2 100644 (file)
@@ -43,10 +43,10 @@ recover_blkrrpart (const char *device, const char *err)
   int r;
 
   if (!strstr (err,
-              "Error informing the kernel about modifications to partition"))
+               "Error informing the kernel about modifications to partition"))
     return -1;
 
-  r = command (NULL, NULL, "/sbin/blockdev", "--rereadpt", device, NULL);
+  r = command (NULL, NULL, "blockdev", "--rereadpt", device, NULL);
   if (r == -1)
     return -1;
 
@@ -55,44 +55,44 @@ recover_blkrrpart (const char *device, const char *err)
   return 0;
 }
 
-#define RUN_PARTED(device,...)                                         \
-  do {                                                                 \
-    int r;                                                             \
-    char *err;                                                         \
-                                                                       \
-    r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,      \
-                 "/sbin/parted", "-s", "--", (device), __VA_ARGS__);   \
-    if (r == -1) {                                                     \
-      if (recover_blkrrpart ((device), err) == -1) {                   \
-       reply_with_error ("%s: parted: %s: %s", __func__, (device), err); \
-       free (err);                                                     \
-       return -1;                                                      \
-      }                                                                        \
-    }                                                                  \
-                                                                       \
-    free (err);                                                                \
+#define RUN_PARTED(device,...)                                          \
+  do {                                                                  \
+    int r;                                                              \
+    char *err;                                                          \
+                                                                        \
+    r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,       \
+                  "parted", "-s", "--", (device), __VA_ARGS__);   \
+    if (r == -1) {                                                      \
+      if (recover_blkrrpart ((device), err) == -1) {                    \
+        reply_with_error ("%s: parted: %s: %s", __func__, (device), err); \
+        free (err);                                                     \
+        return -1;                                                      \
+      }                                                                 \
+    }                                                                   \
+                                                                        \
+    free (err);                                                         \
   } while (0)
 
 static const char *
 check_parttype (const char *parttype)
 {
   /* Check and translate parttype. */
-  if (strcmp (parttype, "aix") == 0 ||
-      strcmp (parttype, "amiga") == 0 ||
-      strcmp (parttype, "bsd") == 0 ||
-      strcmp (parttype, "dasd") == 0 ||
-      strcmp (parttype, "dvh") == 0 ||
-      strcmp (parttype, "gpt") == 0 ||
-      strcmp (parttype, "mac") == 0 ||
-      strcmp (parttype, "msdos") == 0 ||
-      strcmp (parttype, "pc98") == 0 ||
-      strcmp (parttype, "sun") == 0)
+  if (STREQ (parttype, "aix") ||
+      STREQ (parttype, "amiga") ||
+      STREQ (parttype, "bsd") ||
+      STREQ (parttype, "dasd") ||
+      STREQ (parttype, "dvh") ||
+      STREQ (parttype, "gpt") ||
+      STREQ (parttype, "mac") ||
+      STREQ (parttype, "msdos") ||
+      STREQ (parttype, "pc98") ||
+      STREQ (parttype, "sun"))
     return parttype;
-  else if (strcmp (parttype, "rdb") == 0)
+  else if (STREQ (parttype, "rdb"))
     return "amiga";
-  else if (strcmp (parttype, "efi") == 0)
+  else if (STREQ (parttype, "efi"))
     return "gpt";
-  else if (strcmp (parttype, "mbr") == 0)
+  else if (STREQ (parttype, "mbr"))
     return "msdos";
   else
     return NULL;
@@ -103,7 +103,7 @@ do_part_init (const char *device, const char *parttype)
 {
   parttype = check_parttype (parttype);
   if (!parttype) {
-    reply_with_error ("part-init: unknown partition type: common choices are \"gpt\" and \"msdos\"");
+    reply_with_error ("unknown partition type: common choices are \"gpt\" and \"msdos\"");
     return -1;
   }
 
@@ -122,23 +122,23 @@ do_part_add (const char *device, const char *prlogex,
   char endstr[32];
 
   /* Check and translate prlogex. */
-  if (strcmp (prlogex, "primary") == 0 ||
-      strcmp (prlogex, "logical") == 0 ||
-      strcmp (prlogex, "extended") == 0)
+  if (STREQ (prlogex, "primary") ||
+      STREQ (prlogex, "logical") ||
+      STREQ (prlogex, "extended"))
     ;
-  else if (strcmp (prlogex, "p") == 0)
+  else if (STREQ (prlogex, "p"))
     prlogex = "primary";
-  else if (strcmp (prlogex, "l") == 0)
+  else if (STREQ (prlogex, "l"))
     prlogex = "logical";
-  else if (strcmp (prlogex, "e") == 0)
+  else if (STREQ (prlogex, "e"))
     prlogex = "extended";
   else {
-    reply_with_error ("part-add: unknown partition type: %s: this should be \"primary\", \"logical\" or \"extended\"", prlogex);
+    reply_with_error ("unknown partition type: %s: this should be \"primary\", \"logical\" or \"extended\"", prlogex);
     return -1;
   }
 
   if (startsect < 0) {
-    reply_with_error ("part-add: startsect cannot be negative");
+    reply_with_error ("startsect cannot be negative");
     return -1;
   }
   /* but endsect can be negative */
@@ -166,15 +166,15 @@ do_part_disk (const char *device, const char *parttype)
 
   parttype = check_parttype (parttype);
   if (!parttype) {
-    reply_with_error ("part-disk: unknown partition type: common choices are \"gpt\" and \"msdos\"");
+    reply_with_error ("unknown partition type: common choices are \"gpt\" and \"msdos\"");
     return -1;
   }
 
   /* Voooooodooooooooo (thanks Jim Meyering for working this out). */
-  if (strcmp (parttype, "msdos") == 0) {
+  if (STREQ (parttype, "msdos")) {
     startstr = "1s";
     endstr = "-1s";
-  } else if (strcmp (parttype, "gpt") == 0) {
+  } else if (STREQ (parttype, "gpt")) {
     startstr = "34s";
     endstr = "-34s";
   } else {
@@ -184,10 +184,10 @@ do_part_disk (const char *device, const char *parttype)
   }
 
   RUN_PARTED (device,
-             "mklabel", parttype,
-             /* See comment about about the parted mkpart command. */
-             "mkpart", strcmp (parttype, "gpt") == 0 ? "p1" : "primary",
-             startstr, endstr, NULL);
+              "mklabel", parttype,
+              /* See comment about about the parted mkpart command. */
+              "mkpart", STREQ (parttype, "gpt") ? "p1" : "primary",
+              startstr, endstr, NULL);
 
   udev_settle ();
 
@@ -229,7 +229,7 @@ print_partition_table (const char *device)
   int r;
   char **lines;
 
-  r = command (&out, &err, "/sbin/parted", "-m", "--", device,
+  r = command (&out, &err, "parted", "-m", "--", device,
                "unit", "b",
                "print", NULL);
   if (r == -1) {
@@ -248,15 +248,15 @@ print_partition_table (const char *device)
   if (!lines)
     return NULL;
 
-  if (lines[0] == NULL || strcmp (lines[0], "BYT;") != 0) {
-    reply_with_error ("parted print: unknown signature, expected \"BYT;\" as first line of the output: %s",
+  if (lines[0] == NULL || STRNEQ (lines[0], "BYT;")) {
+    reply_with_error ("unknown signature, expected \"BYT;\" as first line of the output: %s",
                       lines[0] ? lines[0] : "(signature was null)");
     free_strings (lines);
     return NULL;
   }
 
   if (lines[1] == NULL) {
-    reply_with_error ("parted print: parted didn't return a line describing the device");
+    reply_with_error ("parted didn't return a line describing the device");
     free_strings (lines);
     return NULL;
   }
@@ -284,7 +284,7 @@ do_part_get_parttype (const char *device)
       || strtok (NULL, ":") == NULL  /* physical sector size */
       || (r = strtok (NULL, ":")) == NULL /* return value */
       ) {
-    reply_with_error ("part_get_parttype: too few fields in output from parted print command: %s", lines[1]);
+    reply_with_error ("too few fields in output from parted print command: %s", lines[1]);
     free_strings (lines);
     return NULL;
   }
@@ -339,7 +339,7 @@ do_part_list (const char *device)
                 &r->guestfs_int_partition_list_val[i].part_start,
                 &r->guestfs_int_partition_list_val[i].part_end,
                 &r->guestfs_int_partition_list_val[i].part_size) != 4) {
-      reply_with_error ("part_list: could not parse row from output of parted print command: %s", lines[row]);
+      reply_with_error ("could not parse row from output of parted print command: %s", lines[row]);
       goto error3;
     }
   }