X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=fish%2Fcmds.c;h=142b595c32bcd17946717f9ca8cf3bfccc88a1a4;hp=527091284e13bde1c62f80a58be4f2f02fba89e0;hb=36f9dac1a2530b575dab9226f6ddd85e6e8c8590;hpb=ef499de8946cf4b8120ef7917b2e5d7f9115041f diff --git a/fish/cmds.c b/fish/cmds.c index 5270912..142b595 100644 --- a/fish/cmds.c +++ b/fish/cmds.c @@ -57,15 +57,22 @@ void list_commands (void) printf ("%-20s %s\n", "blockdev-setro", "set block device to read-only"); printf ("%-20s %s\n", "blockdev-setrw", "set block device to read-write"); printf ("%-20s %s\n", "cat", "list the contents of a file"); + printf ("%-20s %s\n", "checksum", "compute MD5, SHAx or CRC checksum of file"); printf ("%-20s %s\n", "chmod", "change file mode"); printf ("%-20s %s\n", "chown", "change file owner and group"); printf ("%-20s %s\n", "command", "run a command from the guest filesystem"); printf ("%-20s %s\n", "command-lines", "run a command, returning lines"); printf ("%-20s %s\n", "config", "add qemu parameters"); + printf ("%-20s %s\n", "debug", "debugging and internals"); + printf ("%-20s %s\n", "download", "download a file to the local machine"); printf ("%-20s %s\n", "exists", "test if file or directory exists"); printf ("%-20s %s\n", "file", "determine file type"); + printf ("%-20s %s\n", "fsck", "run the filesystem checker"); printf ("%-20s %s\n", "get-autosync", "get autosync mode"); + printf ("%-20s %s\n", "get-e2label", "get the ext2/3/4 filesystem label"); + printf ("%-20s %s\n", "get-e2uuid", "get the ext2/3/4 filesystem UUID"); printf ("%-20s %s\n", "get-path", "get the search path"); + printf ("%-20s %s\n", "get-qemu", "get the qemu binary"); printf ("%-20s %s\n", "get-state", "get the current state"); printf ("%-20s %s\n", "get-verbose", "get verbose mode"); printf ("%-20s %s\n", "is-busy", "is busy processing a command"); @@ -83,14 +90,19 @@ void list_commands (void) printf ("%-20s %s\n", "lstat", "get file information for a symbolic link"); printf ("%-20s %s\n", "lvcreate", "create an LVM volume group"); printf ("%-20s %s\n", "lvm-remove-all", "remove all LVM LVs, VGs and PVs"); + printf ("%-20s %s\n", "lvremove", "remove an LVM logical volume"); printf ("%-20s %s\n", "lvs", "list the LVM logical volumes (LVs)"); printf ("%-20s %s\n", "lvs-full", "list the LVM logical volumes (LVs)"); printf ("%-20s %s\n", "mkdir", "create a directory"); 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", "pvremove", "remove an LVM physical volume"); printf ("%-20s %s\n", "pvs", "list the LVM physical volumes (PVs)"); printf ("%-20s %s\n", "pvs-full", "list the LVM physical volumes (PVs)"); printf ("%-20s %s\n", "read-lines", "read file as lines"); @@ -98,20 +110,30 @@ void list_commands (void) printf ("%-20s %s\n", "rm-rf", "remove a file or directory recursively"); printf ("%-20s %s\n", "rmdir", "remove a directory"); printf ("%-20s %s\n", "set-autosync", "set autosync mode"); + printf ("%-20s %s\n", "set-e2label", "set the ext2/3/4 filesystem label"); + printf ("%-20s %s\n", "set-e2uuid", "set the ext2/3/4 filesystem UUID"); printf ("%-20s %s\n", "set-path", "set the search path"); + printf ("%-20s %s\n", "set-qemu", "set the qemu binary"); printf ("%-20s %s\n", "set-verbose", "set verbose mode"); printf ("%-20s %s\n", "sfdisk", "create partitions on a block device"); printf ("%-20s %s\n", "stat", "get file information"); printf ("%-20s %s\n", "statvfs", "get file system statistics"); printf ("%-20s %s\n", "sync", "sync disks, writes are flushed through to the disk image"); + printf ("%-20s %s\n", "tar-in", "unpack tarfile to directory"); + printf ("%-20s %s\n", "tar-out", "pack directory into tarfile"); + printf ("%-20s %s\n", "tgz-in", "unpack compressed tarball to directory"); + printf ("%-20s %s\n", "tgz-out", "pack directory into compressed tarball"); printf ("%-20s %s\n", "touch", "update file timestamps or create a new file"); - printf ("%-20s %s\n", "tune2fs-l", "get ext2/ext3 superblock details"); + printf ("%-20s %s\n", "tune2fs-l", "get ext2/ext3/ext4 superblock details"); printf ("%-20s %s\n", "umount", "unmount a filesystem"); printf ("%-20s %s\n", "umount-all", "unmount all filesystems"); + printf ("%-20s %s\n", "upload", "upload a file from the local machine"); printf ("%-20s %s\n", "vgcreate", "create an LVM volume group"); + printf ("%-20s %s\n", "vgremove", "remove an LVM volume group"); printf ("%-20s %s\n", "vgs", "list the LVM volume groups (VGs)"); printf ("%-20s %s\n", "vgs-full", "list the LVM volume groups (VGs)"); printf ("%-20s %s\n", "write-file", "create a file"); + printf ("%-20s %s\n", "zero", "write zeroes to the device"); printf (" Use -h / help to show detailed help for a command.\n"); } @@ -132,6 +154,12 @@ void display_command (const char *cmd) if (strcasecmp (cmd, "config") == 0) pod2text ("config - add qemu parameters", " config \n\nThis can be used to add arbitrary qemu command line parameters\nof the form C<-param value>. Actually it's not quite arbitrary - we\nprevent you from setting some parameters which would interfere with\nparameters that we use.\n\nThe first character of C string must be a C<-> (dash).\n\nC can be NULL."); else + if (strcasecmp (cmd, "set_qemu") == 0 || strcasecmp (cmd, "set-qemu") == 0 || strcasecmp (cmd, "qemu") == 0) + pod2text ("set-qemu - set the qemu binary", " set-qemu \n\nSet the qemu binary that we will use.\n\nThe default is chosen when the library was compiled by the\nconfigure script.\n\nYou can also override this by setting the C\nenvironment variable.\n\nThe string C is stashed in the libguestfs handle, so the caller\nmust make sure it remains valid for the lifetime of the handle.\n\nSetting C to C restores the default qemu binary.\n\nYou can use 'qemu' as an alias for this command."); + else + if (strcasecmp (cmd, "get_qemu") == 0 || strcasecmp (cmd, "get-qemu") == 0) + pod2text ("get-qemu - get the qemu binary", " get-qemu\n\nReturn the current qemu binary.\n\nThis is always non-NULL. If it wasn't set already, then this will\nreturn the default qemu binary name."); + else if (strcasecmp (cmd, "set_path") == 0 || strcasecmp (cmd, "set-path") == 0 || strcasecmp (cmd, "path") == 0) pod2text ("set-path - set the search path", " set-path \n\nSet the path that libguestfs searches for kernel and initrd.img.\n\nThe default is C<$libdir/guestfs> unless overridden by setting\nC environment variable.\n\nThe string C is stashed in the libguestfs handle, so the caller\nmust make sure it remains valid for the lifetime of the handle.\n\nSetting C to C restores the default path.\n\nYou can use 'path' as an alias for this command."); else @@ -139,7 +167,7 @@ void display_command (const char *cmd) pod2text ("get-path - get the search path", " get-path\n\nReturn the current search path.\n\nThis is always non-NULL. If it wasn't set already, then this will\nreturn the default path."); else if (strcasecmp (cmd, "set_autosync") == 0 || strcasecmp (cmd, "set-autosync") == 0 || strcasecmp (cmd, "autosync") == 0) - pod2text ("set-autosync - set autosync mode", " set-autosync \n\nIf C is true, this enables autosync. Libguestfs will make a\nbest effort attempt to run C when the handle is closed\n(also if the program exits without closing handles).\n\nYou can use 'autosync' as an alias for this command."); + pod2text ("set-autosync - set autosync mode", " set-autosync \n\nIf C is true, this enables autosync. Libguestfs will make a\nbest effort attempt to run C followed by\nC when the handle is closed\n(also if the program exits without closing handles).\n\nThis is disabled by default (except in guestfish where it is\nenabled by default).\n\nYou can use 'autosync' as an alias for this command."); else if (strcasecmp (cmd, "get_autosync") == 0 || strcasecmp (cmd, "get-autosync") == 0) pod2text ("get-autosync - get autosync mode", " get-autosync\n\nGet the autosync flag."); @@ -328,7 +356,7 @@ void display_command (const char *cmd) pod2text ("statvfs - get file system statistics", " statvfs \n\nReturns file system statistics for any mounted file system.\nC should be a file or directory in the mounted file system\n(typically it is the mount point itself, but it doesn't need to be).\n\nThis is the same as the C system call."); else if (strcasecmp (cmd, "tune2fs_l") == 0 || strcasecmp (cmd, "tune2fs-l") == 0) - pod2text ("tune2fs-l - get ext2/ext3 superblock details", " tune2fs-l \n\nThis returns the contents of the ext2 or ext3 filesystem superblock\non C.\n\nIt is the same as running C. See L\nmanpage for more details. The list of fields returned isn't\nclearly defined, and depends on both the version of C\nthat libguestfs was built against, and the filesystem itself."); + pod2text ("tune2fs-l - get ext2/ext3/ext4 superblock details", " tune2fs-l \n\nThis returns the contents of the ext2, ext3 or ext4 filesystem\nsuperblock on C.\n\nIt is the same as running C. See L\nmanpage for more details. The list of fields returned isn't\nclearly defined, and depends on both the version of C\nthat libguestfs was built against, and the filesystem itself."); else if (strcasecmp (cmd, "blockdev_setro") == 0 || strcasecmp (cmd, "blockdev-setro") == 0) pod2text ("blockdev-setro - set block device to read-only", " blockdev-setro \n\nSets the block device named C to read-only.\n\nThis uses the L command."); @@ -360,6 +388,66 @@ void display_command (const char *cmd) if (strcasecmp (cmd, "blockdev_rereadpt") == 0 || strcasecmp (cmd, "blockdev-rereadpt") == 0) pod2text ("blockdev-rereadpt - reread partition table", " blockdev-rereadpt \n\nReread the partition table on C.\n\nThis uses the L command."); else + if (strcasecmp (cmd, "upload") == 0) + pod2text ("upload - upload a file from the local machine", " upload \n\nUpload local file C to C on the\nfilesystem.\n\nC can also be a named pipe.\n\nSee also C."); + else + if (strcasecmp (cmd, "download") == 0) + pod2text ("download - download a file to the local machine", " download \n\nDownload file C and save it as C\non the local machine.\n\nC can also be a named pipe.\n\nSee also C, C."); + else + if (strcasecmp (cmd, "checksum") == 0) + pod2text ("checksum - compute MD5, SHAx or CRC checksum of file", " checksum \n\nThis call computes the MD5, SHAx or CRC checksum of the\nfile named C.\n\nThe type of checksum to compute is given by the C\nparameter which must have one of the following values:\n\n=over 4\n\n=item C\n\nCompute the cyclic redundancy check (CRC) specified by POSIX\nfor the C command.\n\n=item C\n\nCompute the MD5 hash (using the C program).\n\n=item C\n\nCompute the SHA1 hash (using the C program).\n\n=item C\n\nCompute the SHA224 hash (using the C program).\n\n=item C\n\nCompute the SHA256 hash (using the C program).\n\n=item C\n\nCompute the SHA384 hash (using the C program).\n\n=item C\n\nCompute the SHA512 hash (using the C program).\n\n=back\n\nThe checksum is returned as a printable string."); + else + if (strcasecmp (cmd, "tar_in") == 0 || strcasecmp (cmd, "tar-in") == 0) + pod2text ("tar-in - unpack tarfile to directory", " tar-in \n\nThis command uploads and unpacks local file C (an\nI tar file) into C.\n\nTo upload a compressed tarball, use C."); + else + if (strcasecmp (cmd, "tar_out") == 0 || strcasecmp (cmd, "tar-out") == 0) + pod2text ("tar-out - pack directory into tarfile", " tar-out \n\nThis command packs the contents of C and downloads\nit to local file C.\n\nTo download a compressed tarball, use C."); + else + if (strcasecmp (cmd, "tgz_in") == 0 || strcasecmp (cmd, "tgz-in") == 0) + pod2text ("tgz-in - unpack compressed tarball to directory", " tgz-in \n\nThis command uploads and unpacks local file C (a\nI tar file) into C.\n\nTo upload an uncompressed tarball, use C."); + else + 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 + if (strcasecmp (cmd, "debug") == 0) + pod2text ("debug - debugging and internals", " debug \n\nThe C command exposes some internals of\nC (the guestfs daemon) that runs inside the\nqemu subprocess.\n\nThere is no comprehensive help for this command. You have\nto look at the file C in the libguestfs source\nto find out what you can do."); + else + if (strcasecmp (cmd, "lvremove") == 0) + pod2text ("lvremove - remove an LVM logical volume", " lvremove \n\nRemove an LVM logical volume C, where C is\nthe path to the LV, such as C.\n\nYou can also remove all LVs in a volume group by specifying\nthe VG name, C."); + else + if (strcasecmp (cmd, "vgremove") == 0) + pod2text ("vgremove - remove an LVM volume group", " vgremove \n\nRemove an LVM volume group C, (for example C).\n\nThis also forcibly removes all logical volumes in the volume\ngroup (if any)."); + else + if (strcasecmp (cmd, "pvremove") == 0) + pod2text ("pvremove - remove an LVM physical volume", " pvremove \n\nThis wipes a physical volume C so that LVM will no longer\nrecognise it.\n\nThe implementation uses the C command which refuses to\nwipe physical volumes that contain any volume groups, so you have\nto remove those first."); + else + if (strcasecmp (cmd, "set_e2label") == 0 || strcasecmp (cmd, "set-e2label") == 0) + pod2text ("set-e2label - set the ext2/3/4 filesystem label", " set-e2label