} Device;
int verbosity = 0;
+char *post_mount_command = NULL;
/**
Parses a string of the form name=value and places the components in a Property
}
}
+ close(pipe_fd[0]);
if(pid)
waitpid(pid, &status, 0);
gtk_main_quit();
+ if(post_mount_command && !umount)
+ {
+ char workdir[256];
+ int len;
+ len = snprintf(workdir, sizeof(workdir), "/media/%s", device->label);
+ if(len<(int)sizeof(workdir))
+ {
+ if(verbosity>=1)
+ printf("Running %s in %s\n", post_mount_command, workdir);
+
+ pid = fork();
+ if(pid==0)
+ {
+ chdir(workdir);
+ execlp(post_mount_command, post_mount_command, NULL);
+ _exit(1);
+ }
+ }
+ }
+
(void)column;
}
return FALSE;
}
+void show_help(void)
+{
+ printf("pmount-gui\n"
+ "Copyright (c) 2011-2015 Mikko Rasa, Mikkosoft Productions\n\n"
+ "Usage: pmount-gui [-v] [-u] [-r <command>] [-h]\n\n"
+ "Options:\n"
+ " -v Increase verbosity\n"
+ " -u Unmount a device (default is mount)\n"
+ " -r Run a command after mounting\n"
+ " -h Display this help\n");
+}
+
int main(int argc, char **argv)
{
GtkWidget *window;
gtk_init(&argc, &argv);
- while((opt = getopt(argc, argv, "vu"))!=-1) switch(opt)
+ while((opt = getopt(argc, argv, "vur:h"))!=-1) switch(opt)
{
case 'v':
++verbosity;
case 'u':
umount = 1;
break;
+ case 'r':
+ post_mount_command = optarg;
+ break;
+ case 'h':
+ show_help();
+ return 0;
}
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);