Add 'command' and 'command-lines'. Fix args freeing in Perl bindings.
[libguestfs.git] / guestfs-actions.pod
index 310db2e..551b3e3 100644 (file)
@@ -283,6 +283,47 @@ yourself (Augeas support makes this relatively easy).
 
 This function returns 0 on success or -1 on error.
 
+=head2 guestfs_command
+
+ char *guestfs_command (guestfs_h *handle,
+               char * const* const arguments);
+
+This calls runs a command from the guest filesystem.  The
+filesystem must be mounted, and must contain a compatible
+operating system (ie. something Linux, with the same
+or compatible processor architecture).
+
+The single parameter is an argv-style list of arguments.
+The first element is the name of the program to run.
+Subsequent elements are parameters.  The list must be
+non-empty (ie. must contain a program name).
+
+The C<$PATH> environment variable will contain at least
+C</usr/bin> and C</bin>.  If you require a program from
+another location, you should provide the full path in the
+first parameter.
+
+Shared libraries and data files required by the program
+must be available on filesystems which are mounted in the
+correct places.  It is the caller's responsibility to ensure
+all filesystems that are needed are mounted at the right
+locations.
+
+This function returns a string or NULL on error.
+I<The caller must free the returned string after use>.
+
+=head2 guestfs_command_lines
+
+ char **guestfs_command_lines (guestfs_h *handle,
+               char * const* const arguments);
+
+This is the same as C<guestfs_command>, but splits the
+result into a list of lines.
+
+This function returns a NULL-terminated array of strings
+(like L<environ(3)>), or NULL if there was an error.
+I<The caller must free the strings and the array after use>.
+
 =head2 guestfs_config
 
  int guestfs_config (guestfs_h *handle,
@@ -312,6 +353,22 @@ See also C<guestfs_is_file>, C<guestfs_is_dir>, C<guestfs_stat>.
 
 This function returns a C truth value on success or -1 on error.
 
+=head2 guestfs_file
+
+ char *guestfs_file (guestfs_h *handle,
+               const char *path);
+
+This call uses the standard L<file(1)> command to determine
+the type or contents of the file.  This also works on devices,
+for example to find out whether a partition contains a filesystem.
+
+The exact command which runs is C<file -bsL path>.  Note in
+particular that the filename is not prepended to the output
+(the C<-b> option).
+
+This function returns a string or NULL on error.
+I<The caller must free the returned string after use>.
+
 =head2 guestfs_get_autosync
 
  int guestfs_get_autosync (guestfs_h *handle);