#include "daemon.h"
#include "actions.h"
+#include "optgroups.h"
int
-do_scrub_device (char *device)
+optgroup_scrub_available (void)
+{
+ int r = access ("/usr/bin/scrub", X_OK);
+ return r == 0;
+}
+
+int
+do_scrub_device (const char *device)
{
char *err;
int r;
- IS_DEVICE (device, -1);
-
r = command (NULL, &err, "scrub", device, NULL);
if (r == -1) {
- reply_with_error ("scrub_device: %s: %s", device, err);
+ reply_with_error ("%s: %s", device, err);
free (err);
return -1;
}
}
int
-do_scrub_file (char *file)
+do_scrub_file (const char *file)
{
char *buf;
char *err;
int r;
- NEED_ROOT (-1);
- ABS_PATH (file, -1);
-
/* Make the path relative to /sysroot. */
buf = sysroot_path (file);
if (!buf) {
r = command (NULL, &err, "scrub", "-r", buf, NULL);
free (buf);
if (r == -1) {
- reply_with_error ("scrub_file: %s: %s", file, err);
+ reply_with_error ("%s: %s", file, err);
free (err);
return -1;
}
}
int
-do_scrub_freespace (char *dir)
+do_scrub_freespace (const char *dir)
{
char *buf;
char *err;
int r;
- NEED_ROOT (-1);
- ABS_PATH (dir, -1);
-
/* Make the path relative to /sysroot. */
buf = sysroot_path (dir);
if (!buf) {
r = command (NULL, &err, "scrub", "-X", buf, NULL);
free (buf);
if (r == -1) {
- reply_with_error ("scrub_freespace: %s: %s", dir, err);
+ reply_with_error ("%s: %s", dir, err);
free (err);
return -1;
}