catsprintf leaks, use open_memstream instead.
[libguestfs.git] / guestfish-actions.pod
index 6fa8649..a79e336 100644 (file)
@@ -29,7 +29,7 @@ This is equivalent to the qemu parameter C<-drive file=filename>.
 
 Close the current Augeas handle and free up any resources
 used by it.  After calling this, you have to call
 
 Close the current Augeas handle and free up any resources
 used by it.  After calling this, you have to call
-C<aug_init> again before you can use any other
+C<aug-init> again before you can use any other
 Augeas functions.
 
 =head2 aug-defnode
 Augeas functions.
 
 =head2 aug-defnode
@@ -40,7 +40,7 @@ Defines a variable C<name> whose value is the result of
 evaluating C<expr>.
 
 If C<expr> evaluates to an empty nodeset, a node is created,
 evaluating C<expr>.
 
 If C<expr> evaluates to an empty nodeset, a node is created,
-equivalent to calling C<aug_set> C<expr>, C<value>.
+equivalent to calling C<aug-set> C<expr>, C<value>.
 C<name> will be the nodeset containing that single node.
 
 On success this returns a pair containing the
 C<name> will be the nodeset containing that single node.
 
 On success this returns a pair containing the
@@ -73,7 +73,7 @@ Create a new Augeas handle for editing configuration files.
 If there was any previous Augeas handle associated with this
 guestfs session, then it is closed.
 
 If there was any previous Augeas handle associated with this
 guestfs session, then it is closed.
 
-You must call this before using any other C<aug_*>
+You must call this before using any other C<aug-*>
 commands.
 
 C<root> is the filesystem root.  C<root> must not be NULL,
 commands.
 
 C<root> is the filesystem root.  C<root> must not be NULL,
@@ -108,11 +108,11 @@ Make save a no-op, just record what would have been changed.
 
 =item C<AUG_NO_LOAD> = 32
 
 
 =item C<AUG_NO_LOAD> = 32
 
-Do not load the tree in C<aug_init>.
+Do not load the tree in C<aug-init>.
 
 =back
 
 
 =back
 
-To close the handle, you can call C<aug_close>.
+To close the handle, you can call C<aug-close>.
 
 To find out more about Augeas, see L<http://augeas.net/>.
 
 
 To find out more about Augeas, see L<http://augeas.net/>.
 
@@ -141,7 +141,7 @@ details.
 
  aug-ls path
 
 
  aug-ls path
 
-This is just a shortcut for listing C<aug_match>
+This is just a shortcut for listing C<aug-match>
 C<path/*> and sorting the resulting nodes into alphabetical order.
 
 =head2 aug-match
 C<path/*> and sorting the resulting nodes into alphabetical order.
 
 =head2 aug-match
@@ -173,7 +173,7 @@ On success this returns the number of entries which were removed.
 
 This writes all pending changes to disk.
 
 
 This writes all pending changes to disk.
 
-The flags which were passed to C<aug_init> affect exactly
+The flags which were passed to C<aug-init> affect exactly
 how files are saved.
 
 =head2 aug-set
 how files are saved.
 
 =head2 aug-set
@@ -217,7 +217,7 @@ This uses the L<blockdev(8)> command.
 
 This returns the size of the device in bytes.
 
 
 This returns the size of the device in bytes.
 
-See also C<blockdev_getsz>.
+See also C<blockdev-getsz>.
 
 This uses the L<blockdev(8)> command.
 
 
 This uses the L<blockdev(8)> command.
 
@@ -228,7 +228,7 @@ This uses the L<blockdev(8)> command.
 This returns the size of sectors on a block device.
 Usually 512, but can be larger for modern devices.
 
 This returns the size of sectors on a block device.
 Usually 512, but can be larger for modern devices.
 
-(Note, this is not the size in sectors, use C<blockdev_getsz>
+(Note, this is not the size in sectors, use C<blockdev-getsz>
 for that).
 
 This uses the L<blockdev(8)> command.
 for that).
 
 This uses the L<blockdev(8)> command.
@@ -240,8 +240,8 @@ This uses the L<blockdev(8)> command.
 This returns the size of the device in units of 512-byte sectors
 (even if the sectorsize isn't 512 bytes ... weird).
 
 This returns the size of the device in units of 512-byte sectors
 (even if the sectorsize isn't 512 bytes ... weird).
 
-See also C<blockdev_getss> for the real sector size of
-the device, and C<blockdev_getsize64> for the more
+See also C<blockdev-getss> for the real sector size of
+the device, and C<blockdev-getsize64> for the more
 useful I<size in bytes>.
 
 This uses the L<blockdev(8)> command.
 useful I<size in bytes>.
 
 This uses the L<blockdev(8)> command.
@@ -296,6 +296,51 @@ Because of the message protocol, there is a transfer limit
 of somewhere between 2MB and 4MB.  To transfer large files you should use
 FTP.
 
 of somewhere between 2MB and 4MB.  To transfer large files you should use
 FTP.
 
+=head2 checksum
+
+ checksum csumtype path
+
+This call computes the MD5, SHAx or CRC checksum of the
+file named C<path>.
+
+The type of checksum to compute is given by the C<csumtype>
+parameter which must have one of the following values:
+
+=over 4
+
+=item C<crc>
+
+Compute the cyclic redundancy check (CRC) specified by POSIX
+for the C<cksum> command.
+
+=item C<md5>
+
+Compute the MD5 hash (using the C<md5sum> program).
+
+=item C<sha1>
+
+Compute the SHA1 hash (using the C<sha1sum> program).
+
+=item C<sha224>
+
+Compute the SHA224 hash (using the C<sha224sum> program).
+
+=item C<sha256>
+
+Compute the SHA256 hash (using the C<sha256sum> program).
+
+=item C<sha384>
+
+Compute the SHA384 hash (using the C<sha384sum> program).
+
+=item C<sha512>
+
+Compute the SHA512 hash (using the C<sha512sum> program).
+
+=back
+
+The checksum is returned as a printable string.
+
 =head2 chmod
 
  chmod mode path
 =head2 chmod
 
  chmod mode path
@@ -315,7 +360,7 @@ yourself (Augeas support makes this relatively easy).
 
 =head2 command
 
 
 =head2 command
 
- command arguments,...
+ command 'arguments ...'
 
 This call runs a command from the guest filesystem.  The
 filesystem must be mounted, and must contain a compatible
 
 This call runs a command from the guest filesystem.  The
 filesystem must be mounted, and must contain a compatible
@@ -340,7 +385,7 @@ locations.
 
 =head2 command-lines
 
 
 =head2 command-lines
 
- command-lines arguments,...
+ command-lines 'arguments ...'
 
 This is the same as C<command>, but splits the
 result into a list of lines.
 
 This is the same as C<command>, but splits the
 result into a list of lines.
@@ -358,6 +403,31 @@ The first character of C<param> string must be a C<-> (dash).
 
 C<value> can be NULL.
 
 
 C<value> can be NULL.
 
+=head2 debug
+
+ debug subcmd 'extraargs ...'
+
+The C<debug> command exposes some internals of
+C<guestfsd> (the guestfs daemon) that runs inside the
+qemu subprocess.
+
+There is no comprehensive help for this command.  You have
+to look at the file C<daemon/debug.c> in the libguestfs source
+to find out what you can do.
+
+=head2 download
+
+ download remotefilename (filename|-)
+
+Download file C<remotefilename> and save it as C<filename>
+on the local machine.
+
+C<filename> can also be a named pipe.
+
+See also C<upload>, C<cat>.
+
+Use C<-> instead of a filename to read/write from stdin/stdout.
+
 =head2 exists
 
  exists path
 =head2 exists
 
  exists path
@@ -365,7 +435,7 @@ C<value> can be NULL.
 This returns C<true> if and only if there is a file, directory
 (or anything) with the given C<path> name.
 
 This returns C<true> if and only if there is a file, directory
 (or anything) with the given C<path> name.
 
-See also C<is_file>, C<is_dir>, C<stat>.
+See also C<is-file>, C<is-dir>, C<stat>.
 
 =head2 file
 
 
 =head2 file
 
@@ -394,6 +464,15 @@ Return the current search path.
 This is always non-NULL.  If it wasn't set already, then this will
 return the default path.
 
 This is always non-NULL.  If it wasn't set already, then this will
 return the default path.
 
+=head2 get-qemu
+
+ get-qemu
+
+Return the current qemu binary.
+
+This is always non-NULL.  If it wasn't set already, then this will
+return the default qemu binary name.
+
 =head2 get-state
 
  get-state
 =head2 get-state
 
  get-state
@@ -560,7 +639,7 @@ of the L<lvs(8)> command.
 This returns a list of the logical volume device names
 (eg. C</dev/VolGroup00/LogVol00>).
 
 This returns a list of the logical volume device names
 (eg. C</dev/VolGroup00/LogVol00>).
 
-See also C<lvs_full>.
+See also C<lvs-full>.
 
 =head2 lvs-full
 
 
 =head2 lvs-full
 
@@ -611,6 +690,29 @@ on the underlying device.
 The filesystem options C<sync> and C<noatime> are set with this
 call, in order to improve reliability.
 
 The filesystem options C<sync> and C<noatime> are set with this
 call, in order to improve reliability.
 
+=head2 mount-options
+
+ mount-options options device mountpoint
+
+This is the same as the C<mount> command, but it
+allows you to set the mount options as for the
+L<mount(8)> I<-o> flag.
+
+=head2 mount-ro
+
+ mount-ro device mountpoint
+
+This is the same as the C<mount> command, but it
+mounts the filesystem with the read-only (I<-o ro>) flag.
+
+=head2 mount-vfs
+
+ mount-vfs options vfstype device mountpoint
+
+This is the same as the C<mount> command, but it
+allows you to set both the mount options and the vfstype
+as for the L<mount(8)> I<-o> and I<-t> flags.
+
 =head2 mounts
 
  mounts
 =head2 mounts
 
  mounts
@@ -638,7 +740,7 @@ of the L<pvs(8)> command.
 This returns a list of just the device names that contain
 PVs (eg. C</dev/sda2>).
 
 This returns a list of just the device names that contain
 PVs (eg. C</dev/sda2>).
 
-See also C<pvs_full>.
+See also C<pvs-full>.
 
 =head2 pvs-full
 
 
 =head2 pvs-full
 
@@ -658,7 +760,7 @@ C<LF> and C<CRLF> character sequences are I<not> returned.
 
 Note that this function cannot correctly handle binary files
 (specifically, files containing C<\0> character which is treated
 
 Note that this function cannot correctly handle binary files
 (specifically, files containing C<\0> character which is treated
-as end of line).  For those you need to use the C<read_file>
+as end of line).  For those you need to use the C<read-file>
 function which has a more complex interface.
 
 =head2 rm
 function which has a more complex interface.
 
 =head2 rm
@@ -703,6 +805,23 @@ must make sure it remains valid for the lifetime of the handle.
 
 Setting C<path> to C<NULL> restores the default path.
 
 
 Setting C<path> to C<NULL> restores the default path.
 
+=head2 set-qemu | qemu
+
+ set-qemu qemu
+
+Set the qemu binary that we will use.
+
+The default is chosen when the library was compiled by the
+configure script.
+
+You can also override this by setting the C<LIBGUESTFS_QEMU>
+environment variable.
+
+The string C<qemu> is stashed in the libguestfs handle, so the caller
+must make sure it remains valid for the lifetime of the handle.
+
+Setting C<qemu> to C<NULL> restores the default qemu binary.
+
 =head2 set-verbose | verbose
 
  set-verbose true|false
 =head2 set-verbose | verbose
 
  set-verbose true|false
@@ -714,7 +833,7 @@ C<LIBGUESTFS_DEBUG> is defined and set to C<1>.
 
 =head2 sfdisk
 
 
 =head2 sfdisk
 
- sfdisk device cyls heads sectors lines,...
+ sfdisk device cyls heads sectors 'lines ...'
 
 This is a direct interface to the L<sfdisk(8)> program for creating
 partitions on block devices.
 
 This is a direct interface to the L<sfdisk(8)> program for creating
 partitions on block devices.
@@ -767,6 +886,50 @@ underlying disk image.
 You should always call this if you have modified a disk image, before
 closing the handle.
 
 You should always call this if you have modified a disk image, before
 closing the handle.
 
+=head2 tar-in
+
+ tar-in (tarfile|-) directory
+
+This command uploads and unpacks local file C<tarfile> (an
+I<uncompressed> tar file) into C<directory>.
+
+To upload a compressed tarball, use C<tgz-in>.
+
+Use C<-> instead of a filename to read/write from stdin/stdout.
+
+=head2 tar-out
+
+ tar-out directory (tarfile|-)
+
+This command packs the contents of C<directory> and downloads
+it to local file C<tarfile>.
+
+To download a compressed tarball, use C<tgz-out>.
+
+Use C<-> instead of a filename to read/write from stdin/stdout.
+
+=head2 tgz-in
+
+ tgz-in (tarball|-) directory
+
+This command uploads and unpacks local file C<tarball> (a
+I<gzip compressed> tar file) into C<directory>.
+
+To upload an uncompressed tarball, use C<tar-in>.
+
+Use C<-> instead of a filename to read/write from stdin/stdout.
+
+=head2 tgz-out
+
+ tgz-out directory (tarball|-)
+
+This command packs the contents of C<directory> and downloads
+it to local file C<tarball>.
+
+To download an uncompressed tarball, use C<tar-out>.
+
+Use C<-> instead of a filename to read/write from stdin/stdout.
+
 =head2 touch
 
  touch path
 =head2 touch
 
  touch path
@@ -803,9 +966,22 @@ This unmounts all mounted filesystems.
 
 Some internal mounts are not unmounted by this call.
 
 
 Some internal mounts are not unmounted by this call.
 
+=head2 upload
+
+ upload (filename|-) remotefilename
+
+Upload local file C<filename> to C<remotefilename> on the
+filesystem.
+
+C<filename> can also be a named pipe.
+
+See also C<download>.
+
+Use C<-> instead of a filename to read/write from stdin/stdout.
+
 =head2 vgcreate
 
 =head2 vgcreate
 
- vgcreate volgroup physvols,...
+ vgcreate volgroup 'physvols ...'
 
 This creates an LVM volume group called C<volgroup>
 from the non-empty list of physical volumes C<physvols>.
 
 This creates an LVM volume group called C<volgroup>
 from the non-empty list of physical volumes C<physvols>.
@@ -820,7 +996,7 @@ of the L<vgs(8)> command.
 This returns a list of just the volume group names that were
 detected (eg. C<VolGroup00>).
 
 This returns a list of just the volume group names that were
 detected (eg. C<VolGroup00>).
 
-See also C<vgs_full>.
+See also C<vgs-full>.
 
 =head2 vgs-full
 
 
 =head2 vgs-full