X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=inline;f=fish%2Fcmds.c;h=ff20c8249f86c0fce203f5a5d0283bff7b588d89;hb=79cdf81e2fb717ea4372a55170d16800cdbddf23;hp=6c66f0ac3a26dd4619b555080308737ba3b241ef;hpb=d7ffe439e8ec5304a1a2d1eb591d348c4ab84f38;p=libguestfs.git diff --git a/fish/cmds.c b/fish/cmds.c index 6c66f0a..ff20c82 100644 --- a/fish/cmds.c +++ b/fish/cmds.c @@ -92,6 +92,9 @@ void list_commands (void) printf ("%-20s %s\n", "mkdir-p", "create a directory and parents"); printf ("%-20s %s\n", "mkfs", "make a filesystem"); printf ("%-20s %s\n", "mount", "mount a guest disk at a position in the filesystem"); + printf ("%-20s %s\n", "mount-options", "mount a guest disk with mount options"); + printf ("%-20s %s\n", "mount-ro", "mount a guest disk, read-only"); + printf ("%-20s %s\n", "mount-vfs", "mount a guest disk with mount options and vfstype"); printf ("%-20s %s\n", "mounts", "show mounted filesystems"); printf ("%-20s %s\n", "pvcreate", "create an LVM physical volume"); printf ("%-20s %s\n", "pvs", "list the LVM physical volumes (PVs)"); @@ -396,6 +399,15 @@ void display_command (const char *cmd) if (strcasecmp (cmd, "tgz_out") == 0 || strcasecmp (cmd, "tgz-out") == 0) pod2text ("tgz-out - pack directory into compressed tarball", " tgz-out \n\nThis command packs the contents of C and downloads\nit to local file C.\n\nTo download an uncompressed tarball, use C."); else + if (strcasecmp (cmd, "mount_ro") == 0 || strcasecmp (cmd, "mount-ro") == 0) + pod2text ("mount-ro - mount a guest disk, read-only", " mount-ro \n\nThis is the same as the C command, but it\nmounts the filesystem with the read-only (I<-o ro>) flag."); + else + if (strcasecmp (cmd, "mount_options") == 0 || strcasecmp (cmd, "mount-options") == 0) + pod2text ("mount-options - mount a guest disk with mount options", " mount-options \n\nThis is the same as the C command, but it\nallows you to set the mount options as for the\nL I<-o> flag."); + else + if (strcasecmp (cmd, "mount_vfs") == 0 || strcasecmp (cmd, "mount-vfs") == 0) + pod2text ("mount-vfs - mount a guest disk with mount options and vfstype", " mount-vfs \n\nThis is the same as the C command, but it\nallows you to set both the mount options and the vfstype\nas for the L I<-o> and I<-t> flags."); + else display_builtin_command (cmd); } @@ -1917,6 +1929,60 @@ static int run_tgz_out (const char *cmd, int argc, char *argv[]) return r; } +static int run_mount_ro (const char *cmd, int argc, char *argv[]) +{ + int r; + const char *device; + const char *mountpoint; + if (argc != 2) { + fprintf (stderr, "%s should have 2 parameter(s)\n", cmd); + fprintf (stderr, "type 'help %s' for help on %s\n", cmd, cmd); + return -1; + } + device = argv[0]; + mountpoint = argv[1]; + r = guestfs_mount_ro (g, device, mountpoint); + return r; +} + +static int run_mount_options (const char *cmd, int argc, char *argv[]) +{ + int r; + const char *options; + const char *device; + const char *mountpoint; + if (argc != 3) { + fprintf (stderr, "%s should have 3 parameter(s)\n", cmd); + fprintf (stderr, "type 'help %s' for help on %s\n", cmd, cmd); + return -1; + } + options = argv[0]; + device = argv[1]; + mountpoint = argv[2]; + r = guestfs_mount_options (g, options, device, mountpoint); + return r; +} + +static int run_mount_vfs (const char *cmd, int argc, char *argv[]) +{ + int r; + const char *options; + const char *vfstype; + const char *device; + const char *mountpoint; + if (argc != 4) { + fprintf (stderr, "%s should have 4 parameter(s)\n", cmd); + fprintf (stderr, "type 'help %s' for help on %s\n", cmd, cmd); + return -1; + } + options = argv[0]; + vfstype = argv[1]; + device = argv[2]; + mountpoint = argv[3]; + r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint); + return r; +} + int run_action (const char *cmd, int argc, char *argv[]) { if (strcasecmp (cmd, "launch") == 0 || strcasecmp (cmd, "run") == 0) @@ -2189,6 +2255,15 @@ int run_action (const char *cmd, int argc, char *argv[]) if (strcasecmp (cmd, "tgz_out") == 0 || strcasecmp (cmd, "tgz-out") == 0) return run_tgz_out (cmd, argc, argv); else + if (strcasecmp (cmd, "mount_ro") == 0 || strcasecmp (cmd, "mount-ro") == 0) + return run_mount_ro (cmd, argc, argv); + else + if (strcasecmp (cmd, "mount_options") == 0 || strcasecmp (cmd, "mount-options") == 0) + return run_mount_options (cmd, argc, argv); + else + if (strcasecmp (cmd, "mount_vfs") == 0 || strcasecmp (cmd, "mount-vfs") == 0) + return run_mount_vfs (cmd, argc, argv); + else { fprintf (stderr, "%s: unknown command\n", cmd); return -1;