/* libguestfs - the guestfsd daemon
- * Copyright (C) 2009 Red Hat Inc.
+ * Copyright (C) 2009 Red Hat Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#include <stdio.h>
#include <stdlib.h>
+#include <inttypes.h>
#include <string.h>
#include <unistd.h>
#include "daemon.h"
#include "actions.h"
+#include "optgroups.h"
int
-do_ntfs_3g_probe (int rw, char *device)
+optgroup_ntfs3g_available (void)
+{
+ int r = access ("/bin/ntfs-3g.probe", X_OK);
+ return r == 0;
+}
+
+int
+optgroup_ntfsprogs_available (void)
+{
+ int r = access ("/usr/sbin/ntfsresize", X_OK);
+ return r == 0;
+}
+
+int
+do_ntfs_3g_probe (int rw, const char *device)
{
char *err;
int r;
const char *rw_flag;
- IS_DEVICE (device, -1);
-
rw_flag = rw ? "-w" : "-r";
r = commandr (NULL, &err, "ntfs-3g.probe", rw_flag, device, NULL);
if (r == -1) {
- reply_with_error ("ntfs-3g.probe: %s: %s", device, err);
+ reply_with_error ("%s: %s", device, err);
free (err);
return -1;
}
return r;
}
+
+int
+do_ntfsresize (const char *device)
+{
+ char *err;
+ int r;
+
+ r = command (NULL, &err, "ntfsresize", "-P", device, NULL);
+ if (r == -1) {
+ reply_with_error ("%s: %s", device, err);
+ free (err);
+ return -1;
+ }
+
+ return 0;
+}
+
+int
+do_ntfsresize_size (const char *device, int64_t size)
+{
+ char *err;
+ int r;
+
+ char buf[32];
+ snprintf (buf, sizeof buf, "%" PRIi64, size);
+
+ r = command (NULL, &err, "ntfsresize", "-P", "--size", buf,
+ device, NULL);
+ if (r == -1) {
+ reply_with_error ("%s: %s", device, err);
+ free (err);
+ return -1;
+ }
+
+ return 0;
+}