generator: Generate guestfish-only commands.
authorRichard W.M. Jones <rjones@redhat.com>
Sat, 18 Sep 2010 08:38:05 +0000 (09:38 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Sat, 18 Sep 2010 08:38:05 +0000 (09:38 +0100)
The guestfish-only commands such as 'alloc' and 'edit' are
now generated from one place in the generator instead of being
spread around ad-hoc in the C code.

28 files changed:
.gitignore
Makefile.am
fish/Makefile.am
fish/alloc.c
fish/copy.c
fish/echo.c
fish/edit.c
fish/fish.c
fish/fish.h
fish/glob.c
fish/guestfish.pod
fish/lcd.c
fish/man.c
fish/more.c
fish/reopen.c
fish/supported.c
fish/time.c
generator/generator_actions.ml
generator/generator_actions.mli
generator/generator_checks.ml
generator/generator_fish.ml
generator/generator_main.ml
generator/generator_utils.ml
generator/generator_utils.mli
po-docs/Makefile.am
po-docs/ja.po
po-docs/ja/Makefile.am
po-docs/libguestfs-docs.pot

index e7c35f5..dbe636b 100644 (file)
@@ -73,6 +73,7 @@ generator/generator
 generator/stamp-generator
 guestfish.1
 guestfish-actions.pod
+guestfish-commands.pod
 guestfs.3
 guestfs-actions.pod
 guestfs-availability.pod
index 2cf03b0..5ab3b6d 100644 (file)
@@ -114,10 +114,11 @@ html/guestfs.3.html: src/guestfs.pod \
          --htmldir html \
          --outfile $@
 
-html/guestfish.1.html: fish/guestfish.pod fish/guestfish-actions.pod
+html/guestfish.1.html: fish/guestfish.pod fish/guestfish-actions.pod fish/guestfish-commands.pod
        mkdir -p html
        sed \
          -e '/@ACTIONS@/rfish/guestfish-actions.pod' -e 's/@ACTIONS@//' \
+         -e '/@FISH_COMMANDS@/rguestfish-commands.pod' -e 's/@FISH_COMMANDS@//' \
          < $< | \
        pod2html \
          --css 'pod.css' \
index 906d362..4d17aa1 100644 (file)
@@ -23,6 +23,7 @@ generator_built = \
        cmds.c \
        completion.c \
        guestfish-actions.pod \
+       guestfish-commands.pod \
        prepopts.h \
        prepopts.c
 
@@ -109,14 +110,15 @@ guestfish.static$(EXEEXT): $(guestfish_OBJECTS) $(guestfish_DEPENDENCIES)
        $(guestfish_LINK) $(guestfish_OBJECTS) -static $(guestfish_LDADD) $(guestfish_LIBS) -ltinfo -lpcre -lhivex -lmagic -lz -lm
 
 # Manual page.
-# guestfish-actions.pod is autogenerated.  There is no include
-# mechanism for POD, so we have to do it by hand.
+# guestfish-actions.pod and guestfish-commands.pod are autogenerated.
+# There is no include mechanism for POD, so we have to do it by hand.
 
 man_MANS = guestfish.1
 
-guestfish.1: guestfish.pod guestfish-actions.pod
+guestfish.1: guestfish.pod guestfish-actions.pod guestfish-commands.pod
        sed \
          -e '/@ACTIONS@/rguestfish-actions.pod' -e 's/@ACTIONS@//' \
+         -e '/@FISH_COMMANDS@/rguestfish-commands.pod' -e 's/@FISH_COMMANDS@//' \
          < $< | \
        $(POD2MAN) \
          --section 1 \
index 29d9845..0470d20 100644 (file)
@@ -31,7 +31,7 @@
 #include "fish.h"
 
 int
-do_alloc (const char *cmd, int argc, char *argv[])
+run_alloc (const char *cmd, int argc, char *argv[])
 {
   if (argc != 2) {
     fprintf (stderr, _("use 'alloc file size' to create an image\n"));
@@ -45,7 +45,7 @@ do_alloc (const char *cmd, int argc, char *argv[])
 }
 
 int
-do_sparse (const char *cmd, int argc, char *argv[])
+run_sparse (const char *cmd, int argc, char *argv[])
 {
   if (argc != 2) {
     fprintf (stderr, _("use 'sparse file size' to create a sparse image\n"));
index a7274f3..bb6334c 100644 (file)
@@ -33,7 +33,7 @@ static int make_tar_output (const char *local, const char *basename);
 static int split_path (char *buf, size_t buf_size, const char *path, const char **dirname, const char **basename);
 
 int
-do_copy_in (const char *cmd, int argc, char *argv[])
+run_copy_in (const char *cmd, int argc, char *argv[])
 {
   if (argc < 2) {
     fprintf (stderr,
@@ -176,7 +176,7 @@ tar_create (const char *dir, const char *path)
 }
 
 int
-do_copy_out (const char *cmd, int argc, char *argv[])
+run_copy_out (const char *cmd, int argc, char *argv[])
 {
   if (argc < 2) {
     fprintf (stderr,
index 33992d4..783c0f6 100644 (file)
@@ -25,7 +25,7 @@
 #include "fish.h"
 
 int
-do_echo (const char *cmd, int argc, char *argv[])
+run_echo (const char *cmd, int argc, char *argv[])
 {
   int i;
 
index 10950f9..4c06e86 100644 (file)
@@ -32,7 +32,7 @@
 /* guestfish edit command, suggested by Ján Ondrej, implemented by RWMJ */
 
 int
-do_edit (const char *cmd, int argc, char *argv[])
+run_edit (const char *cmd, int argc, char *argv[])
 {
   char filename[] = "/tmp/guestfishXXXXXX";
   char buf[256];
index 43b7eee..8851831 100644 (file)
@@ -1070,39 +1070,6 @@ issue_command (const char *cmd, char *argv[], const char *pipecmd)
     quit = 1;
     r = 0;
   }
-  else if (STRCASEEQ (cmd, "alloc") ||
-           STRCASEEQ (cmd, "allocate"))
-    r = do_alloc (cmd, argc, argv);
-  else if (STRCASEEQ (cmd, "copy-in") ||
-           STRCASEEQ (cmd, "copy_in"))
-    r = do_copy_in (cmd, argc, argv);
-  else if (STRCASEEQ (cmd, "copy-out") ||
-           STRCASEEQ (cmd, "copy_out"))
-    r = do_copy_out (cmd, argc, argv);
-  else if (STRCASEEQ (cmd, "echo"))
-    r = do_echo (cmd, argc, argv);
-  else if (STRCASEEQ (cmd, "edit") ||
-           STRCASEEQ (cmd, "vi") ||
-           STRCASEEQ (cmd, "emacs"))
-    r = do_edit (cmd, argc, argv);
-  else if (STRCASEEQ (cmd, "lcd"))
-    r = do_lcd (cmd, argc, argv);
-  else if (STRCASEEQ (cmd, "glob"))
-    r = do_glob (cmd, argc, argv);
-  else if (STRCASEEQ (cmd, "man") ||
-           STRCASEEQ (cmd, "manual"))
-    r = do_man (cmd, argc, argv);
-  else if (STRCASEEQ (cmd, "more") ||
-           STRCASEEQ (cmd, "less"))
-    r = do_more (cmd, argc, argv);
-  else if (STRCASEEQ (cmd, "reopen"))
-    r = do_reopen (cmd, argc, argv);
-  else if (STRCASEEQ (cmd, "sparse"))
-    r = do_sparse (cmd, argc, argv);
-  else if (STRCASEEQ (cmd, "supported"))
-    r = do_supported (cmd, argc, argv);
-  else if (STRCASEEQ (cmd, "time"))
-    r = do_time (cmd, argc, argv);
   else
     r = run_action (cmd, argc, argv);
 
@@ -1133,39 +1100,12 @@ issue_command (const char *cmd, char *argv[], const char *pipecmd)
 void
 list_builtin_commands (void)
 {
-  /* help, man and quit should appear at the top */
+  /* help and quit should appear at the top */
   printf ("%-20s %s\n",
           "help", _("display a list of commands or help on a command"));
   printf ("%-20s %s\n",
-          "man", _("read the manual"));
-  printf ("%-20s %s\n",
           "quit", _("quit guestfish"));
 
-  printf ("%-20s %s\n",
-          "alloc", _("allocate an image"));
-  printf ("%-20s %s\n",
-          "copy-in", _("copy files into an image"));
-  printf ("%-20s %s\n",
-          "copy-out", _("copy files out of an image"));
-  printf ("%-20s %s\n",
-          "echo", _("display a line of text"));
-  printf ("%-20s %s\n",
-          "edit", _("edit a file in the image"));
-  printf ("%-20s %s\n",
-          "lcd", _("local change directory"));
-  printf ("%-20s %s\n",
-          "glob", _("expand wildcards in command"));
-  printf ("%-20s %s\n",
-          "more", _("view a file in the pager"));
-  printf ("%-20s %s\n",
-          "reopen", _("close and reopen libguestfs handle"));
-  printf ("%-20s %s\n",
-          "sparse", _("allocate a sparse image file"));
-  printf ("%-20s %s\n",
-          "supported", _("list supported groups of commands"));
-  printf ("%-20s %s\n",
-          "time", _("measure time taken to run command"));
-
   /* actions are printed after this (see list_commands) */
 }
 
@@ -1174,108 +1114,12 @@ display_builtin_command (const char *cmd)
 {
   /* help for actions is auto-generated, see display_command */
 
-  if (STRCASEEQ (cmd, "alloc") ||
-      STRCASEEQ (cmd, "allocate")) {
-    printf (_("alloc - allocate an image\n"
-              "     alloc <filename> <size>\n"
-              "\n"
-              "    This creates an empty (zeroed) file of the given size,\n"
-              "    and then adds so it can be further examined.\n"
-              "\n"
-              "    For more advanced image creation, see qemu-img utility.\n"
-              "\n"
-              "    Size can be specified using standard suffixes, eg. '1M'.\n"
-              ));
-    return 0;
-  }
-  else if (STRCASEEQ (cmd, "copy-in") ||
-           STRCASEEQ (cmd, "copy_in")) {
-    printf (_("copy-in - copy files into an image\n"
-              "     copy-in <local> [<local> ...] <remotedir>\n"
-              "\n"
-              "    Copy local files or directories recursively into the\n"
-              "    image, placing them on a remote directory.\n"
-              ));
-    return 0;
-  }
-  else if (STRCASEEQ (cmd, "copy-out") ||
-           STRCASEEQ (cmd, "copy_out")) {
-    printf (_("copy-out - copy files out of an image\n"
-              "     copy-out <remote> [<remote> ...] <localdir>\n"
-              "\n"
-              "    Copy remote files or directories recursively out of the\n"
-              "    image, placing them in a local directory.\n"
-              ));
-    return 0;
-  }
-  else if (STRCASEEQ (cmd, "echo")) {
-    printf (_("echo - display a line of text\n"
-              "     echo [<params> ...]\n"
-              "\n"
-              "    This echos the parameters to the terminal.\n"));
-    return 0;
-  }
-  else if (STRCASEEQ (cmd, "edit") ||
-           STRCASEEQ (cmd, "vi") ||
-           STRCASEEQ (cmd, "emacs")) {
-    printf (_("edit - edit a file in the image\n"
-              "     edit <filename>\n"
-              "\n"
-              "    This is used to edit a file.\n"
-              "\n"
-              "    It is the equivalent of (and is implemented by)\n"
-              "    running \"cat\", editing locally, and then \"write\".\n"
-              "\n"
-              "    Normally it uses $EDITOR, but if you use the aliases\n"
-              "    \"vi\" or \"emacs\" you will get those editors.\n"));
-    return 0;
-  }
-  else if (STRCASEEQ (cmd, "lcd")) {
-    printf (_("lcd - local change directory\n"
-              "    lcd <directory>\n"
-              "\n"
-              "    Change guestfish's current directory. This command is\n"
-              "    useful if you want to download files to a particular\n"
-              "    place.\n"));
-    return 0;
-  }
-  else if (STRCASEEQ (cmd, "glob")) {
-    printf (_("glob - expand wildcards in command\n"
-              "    glob <command> [<args> ...]\n"
-              "\n"
-              "    Glob runs <command> with wildcards expanded in any\n"
-              "    command args.  Note that the command is run repeatedly\n"
-              "    once for each expanded argument.\n"));
-    return 0;
-  }
-  else if (STRCASEEQ (cmd, "man") ||
-           STRCASEEQ (cmd, "manual")) {
-    printf (_("man - read the manual\n"
-              "    man\n"
-              "\n"
-              "    Opens the manual page for guestfish.\n"));
-    return 0;
-  }
-  else if (STRCASEEQ (cmd, "help")) {
+  if (STRCASEEQ (cmd, "help")) {
     printf (_("help - display a list of commands or help on a command\n"
               "     help cmd\n"
               "     help\n"));
     return 0;
   }
-  else if (STRCASEEQ (cmd, "more") ||
-           STRCASEEQ (cmd, "less")) {
-    printf (_("more - view a file in the pager\n"
-              "     more <filename>\n"
-              "\n"
-              "    This is used to view a file in the pager.\n"
-              "\n"
-              "    It is the equivalent of (and is implemented by)\n"
-              "    running \"cat\" and using the pager.\n"
-              "\n"
-              "    Normally it uses $PAGER, but if you use the alias\n"
-              "    \"less\" then it always uses \"less\".\n"));
-    return 0;
-  }
   else if (STRCASEEQ (cmd, "quit") ||
            STRCASEEQ (cmd, "exit") ||
            STRCASEEQ (cmd, "q")) {
@@ -1283,56 +1127,6 @@ display_builtin_command (const char *cmd)
               "     quit\n"));
     return 0;
   }
-  else if (STRCASEEQ (cmd, "reopen")) {
-    printf (_("reopen - close and reopen the libguestfs handle\n"
-              "     reopen\n"
-              "\n"
-              "Close and reopen the libguestfs handle.  It is not necessary to use\n"
-              "this normally, because the handle is closed properly when guestfish\n"
-              "exits.  However this is occasionally useful for testing.\n"));
-    return 0;
-  }
-  else if (STRCASEEQ (cmd, "sparse")) {
-    printf (_("sparse - allocate a sparse image file\n"
-              "     sparse <filename> <size>\n"
-              "\n"
-              "    This creates an empty sparse file of the given size,\n"
-              "    and then adds so it can be further examined.\n"
-              "\n"
-              "    In all respects it works the same as the 'alloc'\n"
-              "    command, except that the image file is allocated\n"
-              "    sparsely, which means that disk blocks are not assigned\n"
-              "    to the file until they are needed.  Sparse disk files\n"
-              "    only use space when written to, but they are slower\n"
-              "    and there is a danger you could run out of real disk\n"
-              "    space during a write operation.\n"
-              "\n"
-              "    For more advanced image creation, see qemu-img utility.\n"
-              "\n"
-              "    Size can be specified using standard suffixes, eg. '1M'.\n"
-              ));
-    return 0;
-  }
-  else if (STRCASEEQ (cmd, "supported")) {
-    printf (_("supported - list supported groups of commands\n"
-              "     supported\n"
-              "\n"
-              "    This command returns a list of the optional groups\n"
-              "    known to the daemon, and indicates which ones are\n"
-              "    supported by this build of the libguestfs appliance.\n"
-              "\n"
-              "    See also guestfs(3) section AVAILABILITY.\n"
-              ));
-    return 0;
-  }
-  else if (STRCASEEQ (cmd, "time")) {
-    printf (_("time - measure time taken to run command\n"
-              "    time <command> [<args> ...]\n"
-              "\n"
-              "    This runs <command> as usual, and prints the elapsed\n"
-              "    time afterwards.\n"));
-    return 0;
-  }
   else {
     fprintf (stderr, _("%s: command not known, use -h to list all commands\n"),
              cmd);
index f908a22..609cbc2 100644 (file)
@@ -88,37 +88,37 @@ extern int complete_dest_paths;
 extern char *complete_dest_paths_generator (const char *text, int state);
 
 /* in alloc.c */
-extern int do_alloc (const char *cmd, int argc, char *argv[]);
-extern int do_sparse (const char *cmd, int argc, char *argv[]);
+extern int run_alloc (const char *cmd, int argc, char *argv[]);
+extern int run_sparse (const char *cmd, int argc, char *argv[]);
 extern int alloc_disk (const char *filename, const char *size,
                        int add, int sparse);
 extern int parse_size (const char *str, off_t *size_rtn);
 
 /* in copy.c */
-extern int do_copy_in (const char *cmd, int argc, char *argv[]);
-extern int do_copy_out (const char *cmd, int argc, char *argv[]);
+extern int run_copy_in (const char *cmd, int argc, char *argv[]);
+extern int run_copy_out (const char *cmd, int argc, char *argv[]);
 
 /* in echo.c */
-extern int do_echo (const char *cmd, int argc, char *argv[]);
+extern int run_echo (const char *cmd, int argc, char *argv[]);
 
 /* in edit.c */
-extern int do_edit (const char *cmd, int argc, char *argv[]);
+extern int run_edit (const char *cmd, int argc, char *argv[]);
 
 /* in inspect.c */
 extern void inspect_mount (void);
 extern void print_inspect_prompt (void);
 
 /* in lcd.c */
-extern int do_lcd (const char *cmd, int argc, char *argv[]);
+extern int run_lcd (const char *cmd, int argc, char *argv[]);
 
 /* in glob.c */
-extern int do_glob (const char *cmd, int argc, char *argv[]);
+extern int run_glob (const char *cmd, int argc, char *argv[]);
 
 /* in man.c */
-extern int do_man (const char *cmd, int argc, char *argv[]);
+extern int run_man (const char *cmd, int argc, char *argv[]);
 
 /* in more.c */
-extern int do_more (const char *cmd, int argc, char *argv[]);
+extern int run_more (const char *cmd, int argc, char *argv[]);
 
 /* in prep.c */
 struct prep_data {
@@ -147,13 +147,13 @@ extern int rc_remote (int pid, const char *cmd, int argc, char *argv[],
                       int exit_on_error);
 
 /* in reopen.c */
-extern int do_reopen (const char *cmd, int argc, char *argv[]);
+extern int run_reopen (const char *cmd, int argc, char *argv[]);
 
 /* in supported.c */
-extern int do_supported (const char *cmd, int argc, char *argv[]);
+extern int run_supported (const char *cmd, int argc, char *argv[]);
 
 /* in time.c */
-extern int do_time (const char *cmd, int argc, char *argv[]);
+extern int run_time (const char *cmd, int argc, char *argv[]);
 
 /* in tilde.c */
 extern char *try_tilde_expansion (char *path);
@@ -166,19 +166,7 @@ extern int add_libvirt_drives (const char *guest);
  */
 #define BUILTIN_COMMANDS_FOR_COMPLETION \
   "help",                              \
-  "quit", "exit", "q",                 \
-  "alloc", "allocate",                 \
-  "copy-in", "copy-out",                \
-  "echo",                              \
-  "edit", "vi", "emacs",               \
-  "lcd",                               \
-  "glob",                              \
-  "man", "manual",                      \
-  "more", "less",                      \
-  "reopen",                            \
-  "sparse",                             \
-  "supported",                          \
-  "time"
+  "quit", "exit", "q"
 
 static inline char *
 bad_cast (char const *s)
index 1a18b37..41f2bcd 100644 (file)
@@ -31,7 +31,7 @@
 static void glob_issue (char *cmd, int argc, char ***globs, int *posn, int *count, int *r);
 
 int
-do_glob (const char *cmd, int argc, char *argv[])
+run_glob (const char *cmd, int argc, char *argv[])
 {
   /* For 'glob cmd foo /s* /usr/s*' this could be:
    *
index f9269a1..ed2e798 100644 (file)
@@ -770,77 +770,6 @@ I<--no-progress-bars>.
 The commands in this section are guestfish convenience commands, in
 other words, they are not part of the L<guestfs(3)> API.
 
-=head2 alloc | allocate
-
- alloc filename size
-
-This creates an empty (zeroed) file of the given size, and then adds
-so it can be further examined.
-
-For more advanced image creation, see L<qemu-img(1)> utility.
-
-Size can be specified using standard suffixes, eg. C<1M>.
-
-=head2 copy-in
-
- copy-in local [local ...] /remotedir
-
-C<copy-in> copies local files or directories recursively into the disk
-image, placing them in the directory called C</remotedir> (which must
-exist).  This guestfish meta-command turns into a sequence of
-L</tar-in> and other commands as necessary.
-
-Multiple local files and directories can be specified, but the last
-parameter must always be a remote directory.  Wildcards cannot be
-used.
-
-=head2 copy-out
-
- copy-out remote [remote ...] localdir
-
-C<copy-out> copies remote files or directories recursively out of the
-disk image, placing them on the host disk in a local directory called
-C<localdir> (which must exist).  This guestfish meta-command turns
-into a sequence of L</download>, L</tar-out> and other commands as
-necessary.
-
-Multiple remote files and directories can be specified, but the last
-parameter must always be a local directory.  To download to the
-current directory, use C<.> as in:
-
- copy-out /home .
-
-Wildcards cannot be used in the ordinary command, but you can use
-them with the help of L</glob> like this:
-
- glob copy-out /home/* .
-
-=head2 echo
-
- echo [params ...]
-
-This echos the parameters to the terminal.
-
-=head2 edit | vi | emacs
-
- edit filename
-
-This is used to edit a file.  It downloads the file, edits it
-locally using your editor, then uploads the result.
-
-The editor is C<$EDITOR>.  However if you use the alternate
-commands C<vi> or C<emacs> you will get those corresponding
-editors.
-
-=head2 glob
-
- glob command args...
-
-Expand wildcards in any paths in the args list, and run C<command>
-repeatedly on each matching path.
-
-See section WILDCARDS AND GLOBBING.
-
 =head2 help
 
  help
@@ -849,77 +778,11 @@ See section WILDCARDS AND GLOBBING.
 Without any parameter, this lists all commands.  With a C<cmd>
 parameter, this displays detailed help for a command.
 
-=head2 lcd
-
- lcd directory
-
-Change the local directory, ie. the current directory of guestfish
-itself.
-
-Note that C<!cd> won't do what you might expect.
-
-=head2 man | manual
-
- man
-
-Opens the manual page for guestfish.
-
-=head2 more | less
-
- more filename
-
- less filename
-
-This is used to view a file.
-
-The default viewer is C<$PAGER>.  However if you use the alternate
-command C<less> you will get the C<less> command specifically.
-
 =head2 quit | exit
 
 This exits guestfish.  You can also use C<^D> key.
 
-=head2 reopen
-
- reopen
-
-Close and reopen the libguestfs handle.  It is not necessary to use
-this normally, because the handle is closed properly when guestfish
-exits.  However this is occasionally useful for testing.
-
-=head2 sparse
-
- sparse filename size
-
-This creates an empty sparse file of the given size, and then adds
-so it can be further examined.
-
-In all respects it works the same as the C<alloc> command, except that
-the image file is allocated sparsely, which means that disk blocks are
-not assigned to the file until they are needed.  Sparse disk files
-only use space when written to, but they are slower and there is a
-danger you could run out of real disk space during a write operation.
-
-For more advanced image creation, see L<qemu-img(1)> utility.
-
-Size can be specified using standard suffixes, eg. C<1M>.
-
-=head2 supported
-
- supported
-
-This command returns a list of the optional groups
-known to the daemon, and indicates which ones are
-supported by this build of the libguestfs appliance.
-
-See also L<guestfs(3)/AVAILABILITY>.
-
-=head2 time
-
- time command args...
-
-Run the command as usual, but print the elapsed time afterwards.  This
-can be useful for benchmarking operations.
+@FISH_COMMANDS@
 
 =head1 COMMANDS
 
index e631f21..2679a49 100644 (file)
@@ -28,7 +28,7 @@
 /* guestfish lcd command (similar to the lcd command in BSD ftp) */
 
 int
-do_lcd (const char *cmd, int argc, char *argv[])
+run_lcd (const char *cmd, int argc, char *argv[])
 {
   if (argc != 1) {
     fprintf (stderr, _("use 'lcd directory' to change local directory\n"));
index e28e892..9649f94 100644 (file)
@@ -28,7 +28,7 @@
 /* guestfish man command */
 
 int
-do_man (const char *cmd, int argc, char *argv[])
+run_man (const char *cmd, int argc, char *argv[])
 {
   if (argc != 0) {
     fprintf (stderr, _("use 'man' without parameters to open the manual\n"));
index 55faefa..27fc548 100644 (file)
@@ -28,7 +28,7 @@
 #include "fish.h"
 
 int
-do_more (const char *cmd, int argc, char *argv[])
+run_more (const char *cmd, int argc, char *argv[])
 {
   char filename[] = "/tmp/guestfishXXXXXX";
   char buf[256];
index 9e19018..1b162c1 100644 (file)
@@ -26,7 +26,7 @@
 #include "fish.h"
 
 int
-do_reopen (const char *cmd, int argc, char *argv[])
+run_reopen (const char *cmd, int argc, char *argv[])
 {
   guestfs_h *g2;
   int r;
index c97af14..3a0c93c 100644 (file)
@@ -26,7 +26,7 @@
 #include "fish.h"
 
 int
-do_supported (const char *cmd, int argc, char *argv[])
+run_supported (const char *cmd, int argc, char *argv[])
 {
   char **groups;
 
index ed00c18..f2fa0fc 100644 (file)
@@ -26,7 +26,7 @@
 #include "fish.h"
 
 int
-do_time (const char *cmd, int argc, char *argv[])
+run_time (const char *cmd, int argc, char *argv[])
 {
   struct timeval start_t, end_t;
   int64_t start_us, end_us, elapsed_us;
index 2e01507..d01871f 100644 (file)
@@ -5124,9 +5124,7 @@ let all_functions = non_daemon_functions @ daemon_functions
 (* In some places we want the functions to be displayed sorted
  * alphabetically, so this is useful:
  *)
-let all_functions_sorted =
-  List.sort (fun (n1,_,_,_,_,_,_) (n2,_,_,_,_,_,_) ->
-               compare n1 n2) all_functions
+let all_functions_sorted = List.sort action_compare all_functions
 
 (* This is used to generate the src/MAX_PROC_NR file which
  * contains the maximum procedure number, a surrogate for the
@@ -5137,3 +5135,158 @@ let max_proc_nr =
     fun (_, _, proc_nr, _, _, _, _) -> proc_nr
   ) daemon_functions in
   List.fold_left max 0 proc_nrs
+
+(* Non-API meta-commands available only in guestfish.
+ *
+ * Note (1): args/return value, proc_nr and tests fields are all
+ * meaningless.  The only fields which are actually used are the
+ * shortname, FishAlias flags, shortdesc and longdesc.
+ *
+ * Note (2): to refer to other commands, use L</shortname>.
+ *
+ * Note (3): keep this list sorted by shortname.
+ *)
+let fish_commands = [
+  ("alloc", (RErr,[]), -1, [FishAlias "allocate"], [],
+   "allocate and add a disk file",
+   " alloc filename size
+
+This creates an empty (zeroed) file of the given size, and then adds
+so it can be further examined.
+
+For more advanced image creation, see L<qemu-img(1)> utility.
+
+Size can be specified using standard suffixes, eg. C<1M>.
+
+To create a sparse file, use L</sparse> instead.  To create a
+prepared disk image, see L</PREPARED DISK IMAGES>.");
+
+  ("copy_in", (RErr,[]), -1, [], [],
+   "copy local files or directories into an image",
+   " copy-in local [local ...] /remotedir
+
+C<copy-in> copies local files or directories recursively into the disk
+image, placing them in the directory called C</remotedir> (which must
+exist).  This guestfish meta-command turns into a sequence of
+L</tar-in> and other commands as necessary.
+
+Multiple local files and directories can be specified, but the last
+parameter must always be a remote directory.  Wildcards cannot be
+used.");
+
+  ("copy_out", (RErr,[]), -1, [], [],
+   "copy remote files or directories out of an image",
+   " copy-out remote [remote ...] localdir
+
+C<copy-out> copies remote files or directories recursively out of the
+disk image, placing them on the host disk in a local directory called
+C<localdir> (which must exist).  This guestfish meta-command turns
+into a sequence of L</download>, L</tar-out> and other commands as
+necessary.
+
+Multiple remote files and directories can be specified, but the last
+parameter must always be a local directory.  To download to the
+current directory, use C<.> as in:
+
+ copy-out /home .
+
+Wildcards cannot be used in the ordinary command, but you can use
+them with the help of L</glob> like this:
+
+ glob copy-out /home/* .");
+
+  ("echo", (RErr,[]), -1, [], [],
+   "display a line of text",
+   " echo [params ...]
+
+This echos the parameters to the terminal.");
+
+  ("edit", (RErr,[]), -1, [FishAlias "vi"; FishAlias "emacs"], [],
+   "edit a file",
+   " edit filename
+
+This is used to edit a file.  It downloads the file, edits it
+locally using your editor, then uploads the result.
+
+The editor is C<$EDITOR>.  However if you use the alternate
+commands C<vi> or C<emacs> you will get those corresponding
+editors.");
+
+  ("glob", (RErr,[]), -1, [], [],
+   "expand wildcards in command",
+   " glob command args...
+
+Expand wildcards in any paths in the args list, and run C<command>
+repeatedly on each matching path.
+
+See L</WILDCARDS AND GLOBBING>.");
+
+  ("lcd", (RErr,[]), -1, [], [],
+   "change working directory",
+   " lcd directory
+
+Change the local directory, ie. the current directory of guestfish
+itself.
+
+Note that C<!cd> won't do what you might expect.");
+
+  ("man", (RErr,[]), -1, [FishAlias "manual"], [],
+   "open the manual",
+   "  man
+
+Opens the manual page for guestfish.");
+
+  ("more", (RErr,[]), -1, [FishAlias "less"], [],
+   "view a file",
+   " more filename
+
+ less filename
+
+This is used to view a file.
+
+The default viewer is C<$PAGER>.  However if you use the alternate
+command C<less> you will get the C<less> command specifically.");
+
+  ("reopen", (RErr,[]), -1, [], [],
+   "close and reopen libguestfs handle",
+   "  reopen
+
+Close and reopen the libguestfs handle.  It is not necessary to use
+this normally, because the handle is closed properly when guestfish
+exits.  However this is occasionally useful for testing.");
+
+  ("sparse", (RErr,[]), -1, [], [],
+   "create a sparse disk image and add",
+   " sparse filename size
+
+This creates an empty sparse file of the given size, and then adds
+so it can be further examined.
+
+In all respects it works the same as the L</alloc> command, except that
+the image file is allocated sparsely, which means that disk blocks are
+not assigned to the file until they are needed.  Sparse disk files
+only use space when written to, but they are slower and there is a
+danger you could run out of real disk space during a write operation.
+
+For more advanced image creation, see L<qemu-img(1)> utility.
+
+Size can be specified using standard suffixes, eg. C<1M>.");
+
+  ("supported", (RErr,[]), -1, [], [],
+   "list supported groups of commands",
+   " supported
+
+This command returns a list of the optional groups
+known to the daemon, and indicates which ones are
+supported by this build of the libguestfs appliance.
+
+See also L<guestfs(3)/AVAILABILITY>.");
+
+  ("time", (RErr,[]), -1, [], [],
+   "print elapsed time taken to run a command",
+   " time command args...
+
+Run the command as usual, but print the elapsed time afterwards.  This
+can be useful for benchmarking operations.");
+
+]
index 0ce6274..711bf4f 100644 (file)
@@ -38,3 +38,6 @@ val test_functions : Generator_types.action list
 val max_proc_nr : int
 (** The largest procedure number used (also saved in [src/MAX_PROC_NR] and
     used as the minor version number of the shared library). *)
+
+val fish_commands : Generator_types.action list
+(** Non-API meta-commands available only in guestfish. *)
index f30a286..98649e2 100644 (file)
@@ -49,7 +49,7 @@ let () =
       if String.contains name '-' then
         failwithf "function name %s should not contain '-', use '_' instead."
           name
-  ) all_functions;
+  ) (all_functions @ fish_commands);
 
   (* Check function parameter/return names. *)
   List.iter (
@@ -120,14 +120,14 @@ let () =
       let c = shortdesc.[String.length shortdesc-1] in
       if c = '\n' || c = '.' then
         failwithf "short description of %s should not end with . or \\n." name
-  ) all_functions;
+  ) (all_functions @ fish_commands);
 
   (* Check long descriptions. *)
   List.iter (
     fun (name, _, _, _, _, _, longdesc) ->
       if longdesc.[String.length longdesc-1] = '\n' then
         failwithf "long description of %s should not end with \\n." name
-  ) all_functions;
+  ) (all_functions @ fish_commands);
 
   (* Check proc_nrs. *)
   List.iter (
index ef675d3..930ef15 100644 (file)
@@ -43,6 +43,9 @@ let generate_fish_cmds () =
       fun (_, _, _, flags, _, _, _) -> not (List.mem NotInFish flags)
     ) all_functions_sorted in
 
+  let all_functions_and_fish_commands_sorted =
+    List.sort action_compare (all_functions_sorted @ fish_commands) in
+
   pr "#include <config.h>\n";
   pr "\n";
   pr "#include <stdio.h>\n";
@@ -70,7 +73,7 @@ let generate_fish_cmds () =
       let name = replace_char name '_' '-' in
       pr "  printf (\"%%-20s %%s\\n\", \"%s\", _(\"%s\"));\n"
         name shortdesc
-  ) all_functions_sorted;
+  ) all_functions_and_fish_commands_sorted;
   pr "  printf (\"    %%s\\n\",";
   pr "          _(\"Use -h <cmd> / help <cmd> to show detailed help for a command.\"));\n";
   pr "}\n";
@@ -79,12 +82,41 @@ let generate_fish_cmds () =
   (* display_command function, which implements guestfish -h cmd *)
   pr "int display_command (const char *cmd)\n";
   pr "{\n";
+
+  List.iter (
+    fun (name, style, _, flags, _, shortdesc, longdesc) ->
+      let name2 = replace_char name '_' '-' in
+      let aliases =
+        filter_map (function FishAlias n -> Some n | _ -> None) flags in
+      let describe_alias =
+        if aliases <> [] then
+          sprintf "\n\nYou can use %s as an alias for this command."
+            (String.concat " or " (List.map (fun s -> "'" ^ s ^ "'") aliases))
+        else "" in
+
+      pr "  if (";
+      pr "STRCASEEQ (cmd, \"%s\")" name;
+      if name <> name2 then
+        pr " || STRCASEEQ (cmd, \"%s\")" name2;
+      List.iter (
+        fun alias ->
+          pr " || STRCASEEQ (cmd, \"%s\")" alias
+      ) aliases;
+      pr ") {\n";
+      pr "    pod2text (\"%s\", _(\"%s\"), %S);\n"
+        name2 shortdesc
+        ("=head1 DESCRIPTION\n\n" ^
+         longdesc ^ describe_alias);
+      pr "    return 0;\n";
+      pr "  }\n";
+      pr "  else\n"
+  ) fish_commands;
+
   List.iter (
     fun (name, style, _, flags, _, shortdesc, longdesc) ->
       let name2 = replace_char name '_' '-' in
-      let alias =
-        try find_map (function FishAlias n -> Some n | _ -> None) flags
-        with Not_found -> name in
+      let aliases =
+        filter_map (function FishAlias n -> Some n | _ -> None) flags in
       let longdesc = replace_str longdesc "C<guestfs_" "C<" in
       let synopsis =
         match snd style with
@@ -123,16 +155,19 @@ Guestfish will prompt for these separately."
           | Some txt -> "\n\n" ^ txt in
 
       let describe_alias =
-        if name <> alias then
-          sprintf "\n\nYou can use '%s' as an alias for this command." alias
+        if aliases <> [] then
+          sprintf "\n\nYou can use %s as an alias for this command."
+            (String.concat " or " (List.map (fun s -> "'" ^ s ^ "'") aliases))
         else "" in
 
       pr "  if (";
       pr "STRCASEEQ (cmd, \"%s\")" name;
       if name <> name2 then
         pr " || STRCASEEQ (cmd, \"%s\")" name2;
-      if name <> alias then
-        pr " || STRCASEEQ (cmd, \"%s\")" alias;
+      List.iter (
+        fun alias ->
+          pr " || STRCASEEQ (cmd, \"%s\")" alias
+      ) aliases;
       pr ") {\n";
       pr "    pod2text (\"%s\", _(\"%s\"), %S);\n"
         name2 shortdesc
@@ -143,6 +178,7 @@ Guestfish will prompt for these separately."
       pr "  }\n";
       pr "  else\n"
   ) all_functions;
+
   pr "    return display_builtin_command (cmd);\n";
   pr "}\n";
   pr "\n";
@@ -465,22 +501,25 @@ Guestfish will prompt for these separately."
   (* run_action function *)
   pr "int run_action (const char *cmd, int argc, char *argv[])\n";
   pr "{\n";
+
   List.iter (
     fun (name, _, _, flags, _, _, _) ->
       let name2 = replace_char name '_' '-' in
-      let alias =
-        try find_map (function FishAlias n -> Some n | _ -> None) flags
-        with Not_found -> name in
+      let aliases =
+        filter_map (function FishAlias n -> Some n | _ -> None) flags in
       pr "  if (";
       pr "STRCASEEQ (cmd, \"%s\")" name;
       if name <> name2 then
         pr " || STRCASEEQ (cmd, \"%s\")" name2;
-      if name <> alias then
-        pr " || STRCASEEQ (cmd, \"%s\")" alias;
+      List.iter (
+        fun alias ->
+          pr " || STRCASEEQ (cmd, \"%s\")" alias;
+      ) aliases;
       pr ")\n";
       pr "    return run_%s (cmd, argc, argv);\n" name;
       pr "  else\n";
-  ) all_functions;
+  ) all_functions_and_fish_commands_sorted;
+
   pr "    {\n";
   pr "      fprintf (stderr, _(\"%%s: unknown command\\n\"), cmd);\n";
   pr "      if (command_num == 1)\n";
@@ -526,12 +565,10 @@ static const char *const commands[] = {
     List.map (
       fun (name, _, _, flags, _, _, _) ->
         let name2 = replace_char name '_' '-' in
-        let alias =
-          try find_map (function FishAlias n -> Some n | _ -> None) flags
-          with Not_found -> name in
-
-        if name <> alias then [name2; alias] else [name2]
-    ) all_functions in
+        let aliases =
+          filter_map (function FishAlias n -> Some n | _ -> None) flags in
+        name2 :: aliases
+    ) (all_functions @ fish_commands) in
   let commands = List.flatten commands in
 
   List.iter (pr "  \"%s\",\n") commands;
@@ -611,15 +648,13 @@ and generate_fish_actions_pod () =
             "L</" ^ replace_char sub '_' '-' ^ ">"
         ) longdesc in
       let name = replace_char name '_' '-' in
-      let alias =
-        try find_map (function FishAlias n -> Some n | _ -> None) flags
-        with Not_found -> name in
+      let aliases =
+        filter_map (function FishAlias n -> Some n | _ -> None) flags in
 
-      pr "=head2 %s" name;
-      if name <> alias then
-        pr " | %s" alias;
-      pr "\n";
-      pr "\n";
+      List.iter (
+        fun name ->
+          pr "=head2 %s\n\n" name
+      ) (name :: aliases);
       pr " %s" name;
       List.iter (
         function
@@ -657,6 +692,21 @@ Guestfish will prompt for these separately.\n\n";
       | Some txt -> pr "%s\n\n" txt
   ) all_functions_sorted
 
+(* Generate documentation for guestfish-only commands. *)
+and generate_fish_commands_pod () =
+  List.iter (
+    fun (name, style, _, flags, _, _, longdesc) ->
+      let name = replace_char name '_' '-' in
+      let aliases =
+        filter_map (function FishAlias n -> Some n | _ -> None) flags in
+
+      List.iter (
+        fun name ->
+          pr "=head2 %s\n\n" name
+      ) (name :: aliases);
+      pr "%s\n\n" longdesc;
+  ) fish_commands
+
 and generate_fish_prep_options_h () =
   generate_header CStyle GPLv2plus;
 
index cdf7773..401ae60 100644 (file)
@@ -90,6 +90,7 @@ Run it from the top source directory using the command
   output_to "capitests/tests.c" generate_tests;
   output_to "fish/cmds.c" generate_fish_cmds;
   output_to "fish/completion.c" generate_fish_completion;
+  output_to "fish/guestfish-commands.pod" generate_fish_commands_pod;
   output_to "fish/guestfish-actions.pod" generate_fish_actions_pod;
   output_to "fish/prepopts.c" generate_fish_prep_options_c;
   output_to "fish/prepopts.h" generate_fish_prep_options_h;
index 2bdcc0d..b7401db 100644 (file)
@@ -303,3 +303,5 @@ let pod2text ~width name longdesc =
     pod2text_memo_updated ();
     lines
 
+(* Compare two actions (for sorting). *)
+let action_compare (n1,_,_,_,_,_,_) (n2,_,_,_,_,_,_) = compare n1 n2
index 7bc0dde..f43a276 100644 (file)
@@ -96,3 +96,6 @@ val pod2text : width:int -> string -> string -> string list
     plain ASCII lines of text.  This is the slowest part of
     autogeneration, so the results are memoized into a temporary
     file. *)
+
+val action_compare : Generator_types.action -> Generator_types.action -> int
+(** Compare the names of two actions, for sorting. *)
index ebb80c0..4b66f49 100644 (file)
@@ -43,6 +43,7 @@ PODFILES = \
        ../src/guestfs-structs.pod \
        ../fish/guestfish.pod \
        ../fish/guestfish-actions.pod \
+       ../fish/guestfish-commands.pod \
        ../test-tool/libguestfs-test-tool.pod \
        ../fuse/guestmount.pod \
        ../inspector/virt-inspector.pl \
index a77075d..90c914b 100644 (file)
@@ -7,10 +7,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: libguestfs@redhat.com\n"
-"POT-Creation-Date: 2010-09-15 20:33+0200\n"
+"POT-Creation-Date: 2010-09-18 09:23+0200\n"
 "PO-Revision-Date: 2010-09-02 14:46+0100\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -1947,7 +1948,7 @@ msgid ""
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:924 ../fish/guestfish.pod:926
+#: ../src/guestfs.pod:924 ../fish/guestfish.pod:789
 msgid "@ACTIONS@"
 msgstr ""
 
@@ -3259,24 +3260,24 @@ msgid ""
 msgstr ""
 
 # type: =head1
-#: ../src/guestfs.pod:1645 ../fish/guestfish.pod:933
+#: ../src/guestfs.pod:1645 ../fish/guestfish.pod:796
 #: ../test-tool/libguestfs-test-tool.pod:104 ../tools/virt-edit.pl:312
 #: ../tools/virt-rescue.pl:226
 msgid "ENVIRONMENT VARIABLES"
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1649 ../fish/guestfish.pod:953
+#: ../src/guestfs.pod:1649 ../fish/guestfish.pod:816
 msgid "LIBGUESTFS_APPEND"
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1651 ../fish/guestfish.pod:955
+#: ../src/guestfs.pod:1651 ../fish/guestfish.pod:818
 msgid "Pass additional options to the guest kernel."
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1653 ../fish/guestfish.pod:957
+#: ../src/guestfs.pod:1653 ../fish/guestfish.pod:820
 msgid "LIBGUESTFS_DEBUG"
 msgstr ""
 
@@ -3288,18 +3289,18 @@ msgid ""
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1658 ../fish/guestfish.pod:962
+#: ../src/guestfs.pod:1658 ../fish/guestfish.pod:825
 msgid "LIBGUESTFS_MEMSIZE"
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1660 ../fish/guestfish.pod:964
+#: ../src/guestfs.pod:1660 ../fish/guestfish.pod:827
 msgid ""
 "Set the memory allocated to the qemu process, in megabytes.  For example:"
 msgstr ""
 
 # type: verbatim
-#: ../src/guestfs.pod:1663 ../fish/guestfish.pod:967
+#: ../src/guestfs.pod:1663 ../fish/guestfish.pod:830
 #, no-wrap
 msgid ""
 " LIBGUESTFS_MEMSIZE=700\n"
@@ -3307,7 +3308,7 @@ msgid ""
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1665 ../fish/guestfish.pod:969
+#: ../src/guestfs.pod:1665 ../fish/guestfish.pod:832
 msgid "LIBGUESTFS_PATH"
 msgstr ""
 
@@ -3319,12 +3320,12 @@ msgid ""
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1670 ../fish/guestfish.pod:974
+#: ../src/guestfs.pod:1670 ../fish/guestfish.pod:837
 msgid "LIBGUESTFS_QEMU"
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1672 ../fish/guestfish.pod:976
+#: ../src/guestfs.pod:1672 ../fish/guestfish.pod:839
 msgid ""
 "Set the default qemu binary that libguestfs uses.  If not set, then the qemu "
 "which was found at compile time by the configure script is used."
@@ -3336,7 +3337,7 @@ msgid "See also L</QEMU WRAPPERS> above."
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1678 ../fish/guestfish.pod:980
+#: ../src/guestfs.pod:1678 ../fish/guestfish.pod:843
 msgid "LIBGUESTFS_TRACE"
 msgstr ""
 
@@ -3348,17 +3349,17 @@ msgid ""
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1683 ../fish/guestfish.pod:989
+#: ../src/guestfs.pod:1683 ../fish/guestfish.pod:852
 msgid "TMPDIR"
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1685 ../fish/guestfish.pod:991
+#: ../src/guestfs.pod:1685 ../fish/guestfish.pod:854
 msgid "Location of temporary directory, defaults to C</tmp>."
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1687 ../fish/guestfish.pod:993
+#: ../src/guestfs.pod:1687 ../fish/guestfish.pod:856
 msgid ""
 "If libguestfs was compiled to use the supermin appliance then each handle "
 "will require rather a large amount of space in this directory for short "
@@ -3367,7 +3368,7 @@ msgid ""
 msgstr ""
 
 # type: =head1
-#: ../src/guestfs.pod:1695 ../fish/guestfish.pod:1051
+#: ../src/guestfs.pod:1695 ../fish/guestfish.pod:914
 #: ../test-tool/libguestfs-test-tool.pod:109 ../fuse/guestmount.pod:178
 #: ../inspector/virt-inspector.pl:846 ../tools/virt-cat.pl:163
 #: ../tools/virt-df.pl:482 ../tools/virt-edit.pl:325
@@ -3453,20 +3454,20 @@ msgid ""
 msgstr ""
 
 # type: =head1
-#: ../src/guestfs.pod:1755 ../fish/guestfish.pod:1067
+#: ../src/guestfs.pod:1755 ../fish/guestfish.pod:930
 #: ../test-tool/libguestfs-test-tool.pod:115 ../fuse/guestmount.pod:189
 #: ../inspector/virt-inspector.pl:855
 msgid "AUTHORS"
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1757 ../fish/guestfish.pod:1069
+#: ../src/guestfs.pod:1757 ../fish/guestfish.pod:932
 #: ../test-tool/libguestfs-test-tool.pod:117 ../fuse/guestmount.pod:191
 msgid "Richard W.M. Jones (C<rjones at redhat dot com>)"
 msgstr ""
 
 # type: =head1
-#: ../src/guestfs.pod:1759 ../fish/guestfish.pod:1071
+#: ../src/guestfs.pod:1759 ../fish/guestfish.pod:934
 #: ../test-tool/libguestfs-test-tool.pod:119 ../fuse/guestmount.pod:193
 #: ../inspector/virt-inspector.pl:861 ../tools/virt-cat.pl:177
 #: ../tools/virt-df.pl:495 ../tools/virt-edit.pl:341
@@ -3478,7 +3479,7 @@ msgid "COPYRIGHT"
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1761 ../fish/guestfish.pod:1073
+#: ../src/guestfs.pod:1761 ../fish/guestfish.pod:936
 msgid "Copyright (C) 2009-2010 Red Hat Inc.  L<http://libguestfs.org/>"
 msgstr ""
 
@@ -16300,501 +16301,153 @@ msgstr ""
 
 # type: =head2
 #: ../fish/guestfish.pod:773
-msgid "alloc | allocate"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:775
-#, no-wrap
-msgid ""
-" alloc filename size\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:777
-msgid ""
-"This creates an empty (zeroed) file of the given size, and then adds so it "
-"can be further examined."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:780 ../fish/guestfish.pod:903
-msgid "For more advanced image creation, see L<qemu-img(1)> utility."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:782 ../fish/guestfish.pod:905
-msgid "Size can be specified using standard suffixes, eg. C<1M>."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:784
-msgid "copy-in"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:786
-#, no-wrap
-msgid ""
-" copy-in local [local ...] /remotedir\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:788
-msgid ""
-"C<copy-in> copies local files or directories recursively into the disk "
-"image, placing them in the directory called C</remotedir> (which must "
-"exist).  This guestfish meta-command turns into a sequence of L</tar-in> and "
-"other commands as necessary."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:793
-msgid ""
-"Multiple local files and directories can be specified, but the last "
-"parameter must always be a remote directory.  Wildcards cannot be used."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:797
-msgid "copy-out"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:799
-#, no-wrap
-msgid ""
-" copy-out remote [remote ...] localdir\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:801
-msgid ""
-"C<copy-out> copies remote files or directories recursively out of the disk "
-"image, placing them on the host disk in a local directory called C<localdir> "
-"(which must exist).  This guestfish meta-command turns into a sequence of L</"
-"download>, L</tar-out> and other commands as necessary."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:807
-msgid ""
-"Multiple remote files and directories can be specified, but the last "
-"parameter must always be a local directory.  To download to the current "
-"directory, use C<.> as in:"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:811
-#, no-wrap
-msgid ""
-" copy-out /home .\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:813
-msgid ""
-"Wildcards cannot be used in the ordinary command, but you can use them with "
-"the help of L</glob> like this:"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:816
-#, no-wrap
-msgid ""
-" glob copy-out /home/* .\n"
-"\n"
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:818
-msgid "echo"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:820
-#, no-wrap
-msgid ""
-" echo [params ...]\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:822
-msgid "This echos the parameters to the terminal."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:824
-msgid "edit | vi | emacs"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:826
-#, no-wrap
-msgid ""
-" edit filename\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:828
-msgid ""
-"This is used to edit a file.  It downloads the file, edits it locally using "
-"your editor, then uploads the result."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:831
-msgid ""
-"The editor is C<$EDITOR>.  However if you use the alternate commands C<vi> "
-"or C<emacs> you will get those corresponding editors."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:835
-msgid "glob"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:837
-#, no-wrap
-msgid ""
-" glob command args...\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:839
-msgid ""
-"Expand wildcards in any paths in the args list, and run C<command> "
-"repeatedly on each matching path."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:842
-msgid "See section WILDCARDS AND GLOBBING."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:844
 msgid "help"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish.pod:846
-#, no-wrap
-msgid ""
-" help\n"
-" help cmd\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:849
-msgid ""
-"Without any parameter, this lists all commands.  With a C<cmd> parameter, "
-"this displays detailed help for a command."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:852
-msgid "lcd"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:854
-#, no-wrap
-msgid ""
-" lcd directory\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:856
-msgid ""
-"Change the local directory, ie. the current directory of guestfish itself."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:859
-msgid "Note that C<!cd> won't do what you might expect."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:861
-msgid "man | manual"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:863
-#, no-wrap
-msgid ""
-" man\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:865
-msgid "Opens the manual page for guestfish."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:867
-msgid "more | less"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:869
-#, no-wrap
-msgid ""
-" more filename\n"
-"\n"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:871
-#, no-wrap
-msgid ""
-" less filename\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:873
-msgid "This is used to view a file."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:875
-msgid ""
-"The default viewer is C<$PAGER>.  However if you use the alternate command "
-"C<less> you will get the C<less> command specifically."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:878
-msgid "quit | exit"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:880
-msgid "This exits guestfish.  You can also use C<^D> key."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:882
-msgid "reopen"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:884
-#, no-wrap
-msgid ""
-" reopen\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:886
-msgid ""
-"Close and reopen the libguestfs handle.  It is not necessary to use this "
-"normally, because the handle is closed properly when guestfish exits.  "
-"However this is occasionally useful for testing."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:890
-msgid "sparse"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:892
-#, no-wrap
-msgid ""
-" sparse filename size\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:894
-msgid ""
-"This creates an empty sparse file of the given size, and then adds so it can "
-"be further examined."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:897
-msgid ""
-"In all respects it works the same as the C<alloc> command, except that the "
-"image file is allocated sparsely, which means that disk blocks are not "
-"assigned to the file until they are needed.  Sparse disk files only use "
-"space when written to, but they are slower and there is a danger you could "
-"run out of real disk space during a write operation."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:907
-msgid "supported"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:909
+#: ../fish/guestfish.pod:775
 #, no-wrap
 msgid ""
-" supported\n"
+" help\n"
+" help cmd\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:911
+#: ../fish/guestfish.pod:778
 msgid ""
-"This command returns a list of the optional groups known to the daemon, and "
-"indicates which ones are supported by this build of the libguestfs appliance."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:915
-msgid "See also L<guestfs(3)/AVAILABILITY>."
+"Without any parameter, this lists all commands.  With a C<cmd> parameter, "
+"this displays detailed help for a command."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish.pod:917
-msgid "time"
+#: ../fish/guestfish.pod:781
+msgid "quit | exit"
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish.pod:919
-#, no-wrap
-msgid ""
-" time command args...\n"
-"\n"
+# type: textblock
+#: ../fish/guestfish.pod:783
+msgid "This exits guestfish.  You can also use C<^D> key."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:921
-msgid ""
-"Run the command as usual, but print the elapsed time afterwards.  This can "
-"be useful for benchmarking operations."
+#: ../fish/guestfish.pod:785
+msgid "@FISH_COMMANDS@"
 msgstr ""
 
 # type: =head1
-#: ../fish/guestfish.pod:924
+#: ../fish/guestfish.pod:787
 msgid "COMMANDS"
 msgstr ""
 
 # type: =head1
-#: ../fish/guestfish.pod:928 ../test-tool/libguestfs-test-tool.pod:83
+#: ../fish/guestfish.pod:791 ../test-tool/libguestfs-test-tool.pod:83
 msgid "EXIT CODE"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:930
+#: ../fish/guestfish.pod:793
 msgid ""
 "guestfish returns 0 if the commands completed without error, or 1 if there "
 "was an error."
 msgstr ""
 
 # type: =item
-#: ../fish/guestfish.pod:937
+#: ../fish/guestfish.pod:800
 msgid "EDITOR"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:939
+#: ../fish/guestfish.pod:802
 msgid ""
 "The C<edit> command uses C<$EDITOR> as the editor.  If not set, it uses "
 "C<vi>."
 msgstr ""
 
 # type: =item
-#: ../fish/guestfish.pod:942
+#: ../fish/guestfish.pod:805
 msgid "GUESTFISH_PID"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:944
+#: ../fish/guestfish.pod:807
 msgid ""
 "Used with the I<--remote> option to specify the remote guestfish process to "
 "control.  See section L</REMOTE CONTROL GUESTFISH OVER A SOCKET>."
 msgstr ""
 
 # type: =item
-#: ../fish/guestfish.pod:948
+#: ../fish/guestfish.pod:811
 msgid "HOME"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:950
+#: ../fish/guestfish.pod:813
 msgid ""
 "If compiled with GNU readline support, various files in the home directory "
 "can be used.  See L</FILES>."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:959
+#: ../fish/guestfish.pod:822
 msgid ""
 "Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages.  This has the same "
 "effect as using the B<-v> option."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:971
+#: ../fish/guestfish.pod:834
 msgid ""
 "Set the path that guestfish uses to search for kernel and initrd.img.  See "
 "the discussion of paths in L<guestfs(3)>."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:982
+#: ../fish/guestfish.pod:845
 msgid "Set C<LIBGUESTFS_TRACE=1> to enable command traces."
 msgstr ""
 
 # type: =item
-#: ../fish/guestfish.pod:984
+#: ../fish/guestfish.pod:847
 msgid "PAGER"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:986
+#: ../fish/guestfish.pod:849
 msgid ""
 "The C<more> command uses C<$PAGER> as the pager.  If not set, it uses "
 "C<more>."
 msgstr ""
 
 # type: =head1
-#: ../fish/guestfish.pod:1001 ../test-tool/libguestfs-test-tool.pod:88
+#: ../fish/guestfish.pod:864 ../test-tool/libguestfs-test-tool.pod:88
 msgid "FILES"
 msgstr ""
 
 # type: =item
-#: ../fish/guestfish.pod:1005
+#: ../fish/guestfish.pod:868
 msgid "$HOME/.guestfish"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1007
+#: ../fish/guestfish.pod:870
 msgid ""
 "If compiled with GNU readline support, then the command history is saved in "
 "this file."
 msgstr ""
 
 # type: =item
-#: ../fish/guestfish.pod:1010
+#: ../fish/guestfish.pod:873
 msgid "$HOME/.inputrc"
 msgstr ""
 
 # type: =item
-#: ../fish/guestfish.pod:1012
+#: ../fish/guestfish.pod:875
 msgid "/etc/inputrc"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1014
+#: ../fish/guestfish.pod:877
 msgid ""
 "If compiled with GNU readline support, then these files can be used to "
 "configure readline.  For further information, please see L<readline(3)/"
@@ -16802,12 +16455,12 @@ msgid ""
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1018
+#: ../fish/guestfish.pod:881
 msgid "To write rules which only apply to guestfish, use:"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish.pod:1020
+#: ../fish/guestfish.pod:883
 #, no-wrap
 msgid ""
 " $if guestfish\n"
@@ -16817,26 +16470,26 @@ msgid ""
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1024
+#: ../fish/guestfish.pod:887
 msgid ""
 "Variables that you can set in inputrc that change the behaviour of guestfish "
 "in useful ways include:"
 msgstr ""
 
 # type: =item
-#: ../fish/guestfish.pod:1029
+#: ../fish/guestfish.pod:892
 msgid "completion-ignore-case (default: on)"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1031
+#: ../fish/guestfish.pod:894
 msgid ""
 "By default, guestfish will ignore case when tab-completing paths on the "
 "disk.  Use:"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish.pod:1034
+#: ../fish/guestfish.pod:897
 #, no-wrap
 msgid ""
 " set completion-ignore-case off\n"
@@ -16844,22 +16497,22 @@ msgid ""
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1036
+#: ../fish/guestfish.pod:899
 msgid "to make guestfish case sensitive."
 msgstr ""
 
 # type: =item
-#: ../fish/guestfish.pod:1040
+#: ../fish/guestfish.pod:903
 msgid "test1.img"
 msgstr ""
 
 # type: =item
-#: ../fish/guestfish.pod:1042
+#: ../fish/guestfish.pod:905
 msgid "test2.img (etc)"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1044
+#: ../fish/guestfish.pod:907
 msgid ""
 "When using the C<-N> or C<--new> option, the prepared disk or filesystem "
 "will be created in the file C<test1.img> in the current directory.  The "
@@ -16868,7 +16521,7 @@ msgid ""
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1053
+#: ../fish/guestfish.pod:916
 msgid ""
 "L<guestfs(3)>, L<http://libguestfs.org/>, L<virt-cat(1)>, L<virt-df(1)>, "
 "L<virt-edit(1)>, L<virt-list-filesystems(1)>, L<virt-list-partitions(1)>, "
@@ -16877,7 +16530,7 @@ msgid ""
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1076 ../test-tool/libguestfs-test-tool.pod:124
+#: ../fish/guestfish.pod:939 ../test-tool/libguestfs-test-tool.pod:124
 #: ../fuse/guestmount.pod:198 ../inspector/virt-inspector.pl:865
 #: ../tools/virt-cat.pl:181 ../tools/virt-df.pl:499 ../tools/virt-edit.pl:345
 #: ../tools/virt-list-filesystems.pl:211 ../tools/virt-list-partitions.pl:248
@@ -16892,7 +16545,7 @@ msgid ""
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1081 ../test-tool/libguestfs-test-tool.pod:129
+#: ../fish/guestfish.pod:944 ../test-tool/libguestfs-test-tool.pod:129
 #: ../fuse/guestmount.pod:203 ../inspector/virt-inspector.pl:870
 #: ../tools/virt-cat.pl:186 ../tools/virt-df.pl:504 ../tools/virt-edit.pl:350
 #: ../tools/virt-list-filesystems.pl:216 ../tools/virt-list-partitions.pl:253
@@ -16907,7 +16560,7 @@ msgid ""
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1086 ../test-tool/libguestfs-test-tool.pod:134
+#: ../fish/guestfish.pod:949 ../test-tool/libguestfs-test-tool.pod:134
 #: ../fuse/guestmount.pod:208 ../inspector/virt-inspector.pl:875
 #: ../tools/virt-cat.pl:191 ../tools/virt-df.pl:509 ../tools/virt-edit.pl:355
 #: ../tools/virt-list-filesystems.pl:221 ../tools/virt-list-partitions.pl:258
@@ -16938,14 +16591,15 @@ msgstr ""
 msgid ""
 "This call checks for the existence of C<filename>.  This stops you from "
 "specifying other types of drive which are supported by qemu such as C<nbd:> "
-"and C<http:> URLs.  To specify those, use the general C<config> call instead."
+"and C<http:> URLs.  To specify those, use the general L</config> call "
+"instead."
 msgstr ""
 
 # type: textblock
 #: ../fish/guestfish-actions.pod:22
 msgid ""
 "If you just want to add an ISO file (often you use this as an efficient way "
-"to transfer large files into the guest), then you should probably use C<add-"
+"to transfer large files into the guest), then you should probably use L</add-"
 "drive-ro> instead."
 msgstr ""
 
@@ -16967,7 +16621,7 @@ msgstr ""
 msgid ""
 "C<if=...> is set at compile time by the configuration option C<./configure --"
 "with-drive-if=...>.  In the rare case where you might need to change this at "
-"run time, use C<add-drive-with-if> or C<add-drive-ro-with-if>."
+"run time, use L</add-drive-with-if> or L</add-drive-ro-with-if>."
 msgstr ""
 
 # type: textblock
@@ -16975,8 +16629,8 @@ msgstr ""
 msgid ""
 "Note that this call checks for the existence of C<filename>.  This stops you "
 "from specifying other types of drive which are supported by qemu such as "
-"C<nbd:> and C<http:> URLs.  To specify those, use the general C<config> call "
-"instead."
+"C<nbd:> and C<http:> URLs.  To specify those, use the general L</config> "
+"call instead."
 msgstr ""
 
 # type: =head2
@@ -17008,7 +16662,7 @@ msgstr ""
 # type: textblock
 #: ../fish/guestfish-actions.pod:89
 msgid ""
-"This is the same as C<add-drive-ro> but it allows you to specify the QEMU "
+"This is the same as L</add-drive-ro> but it allows you to specify the QEMU "
 "interface emulation to use at run time."
 msgstr ""
 
@@ -17028,7 +16682,7 @@ msgstr ""
 # type: textblock
 #: ../fish/guestfish-actions.pod:96
 msgid ""
-"This is the same as C<add-drive> but it allows you to specify the QEMU "
+"This is the same as L</add-drive> but it allows you to specify the QEMU "
 "interface emulation to use at run time."
 msgstr ""
 
@@ -17062,7 +16716,7 @@ msgstr ""
 #: ../fish/guestfish-actions.pod:110
 msgid ""
 "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 "
+"calling this, you have to call L</aug-init> again before you can use any "
 "other Augeas functions."
 msgstr ""
 
@@ -17083,7 +16737,7 @@ msgstr ""
 #: ../fish/guestfish-actions.pod:122
 msgid ""
 "If C<expr> evaluates to an empty nodeset, a node is created, equivalent to "
-"calling C<aug-set> C<expr>, C<value>.  C<name> will be the nodeset "
+"calling L</aug-set> C<expr>, C<value>.  C<name> will be the nodeset "
 "containing that single node."
 msgstr ""
 
@@ -17128,17 +16782,17 @@ msgstr ""
 
 # type: textblock
 #: ../fish/guestfish-actions.pod:156
-msgid "You must call this before using any other C<aug-*> commands."
+msgid "You must call this before using any other L</aug-*> commands."
 msgstr ""
 
 # type: textblock
 #: ../fish/guestfish-actions.pod:191
-msgid "Do not load the tree in C<aug-init>."
+msgid "Do not load the tree in L</aug-init>."
 msgstr ""
 
 # type: textblock
 #: ../fish/guestfish-actions.pod:195
-msgid "To close the handle, you can call C<aug-close>."
+msgid "To close the handle, you can call L</aug-close>."
 msgstr ""
 
 # type: =head2
@@ -17183,7 +16837,7 @@ msgstr ""
 # type: textblock
 #: ../fish/guestfish-actions.pod:224
 msgid ""
-"This is just a shortcut for listing C<aug-match> C<path/*> and sorting the "
+"This is just a shortcut for listing L</aug-match> C<path/*> and sorting the "
 "resulting nodes into alphabetical order."
 msgstr ""
 
@@ -17242,7 +16896,7 @@ msgstr ""
 # type: textblock
 #: ../fish/guestfish-actions.pod:256
 msgid ""
-"The flags which were passed to C<aug-init> affect exactly how files are "
+"The flags which were passed to L</aug-init> affect exactly how files are "
 "saved."
 msgstr ""
 
@@ -17264,7 +16918,7 @@ msgstr ""
 msgid ""
 "In the Augeas API, it is possible to clear a node by setting the value to "
 "NULL.  Due to an oversight in the libguestfs API you cannot do that with "
-"this call.  Instead you must use the C<aug-clear> call."
+"this call.  Instead you must use the L</aug-clear> call."
 msgstr ""
 
 # type: =head2
@@ -17285,12 +16939,12 @@ msgstr ""
 msgid ""
 "The libguestfs groups, and the functions that those groups correspond to, "
 "are listed in L<guestfs(3)/AVAILABILITY>.  You can also fetch this list at "
-"runtime by calling C<available-all-groups>."
+"runtime by calling L</available-all-groups>."
 msgstr ""
 
 # type: textblock
 #: ../fish/guestfish-actions.pod:302
-msgid "You must call C<launch> before calling this function."
+msgid "You must call L</launch> before calling this function."
 msgstr ""
 
 # type: textblock
@@ -17298,7 +16952,7 @@ msgstr ""
 msgid ""
 "This call was added in version C<1.0.80>.  In previous versions of "
 "libguestfs all you could do would be to speculatively execute a command to "
-"find out if the daemon implemented it.  See also C<version>."
+"find out if the daemon implemented it.  See also L</version>."
 msgstr ""
 
 # type: =head2
@@ -17319,13 +16973,13 @@ msgstr ""
 msgid ""
 "This command returns a list of all optional groups that this daemon knows "
 "about.  Note this returns both supported and unsupported groups.  To find "
-"out which ones the daemon can actually support you have to call C<available> "
-"on each member of the returned list."
+"out which ones the daemon can actually support you have to call L</"
+"available> on each member of the returned list."
 msgstr ""
 
 # type: textblock
 #: ../fish/guestfish-actions.pod:341
-msgid "See also C<available> and L<guestfs(3)/AVAILABILITY>."
+msgid "See also L</available> and L<guestfs(3)/AVAILABILITY>."
 msgstr ""
 
 # type: =head2
@@ -17419,7 +17073,7 @@ msgstr ""
 
 # type: textblock
 #: ../fish/guestfish-actions.pod:396
-msgid "See also C<blockdev-getsz>."
+msgid "See also L</blockdev-getsz>."
 msgstr ""
 
 # type: =head2
@@ -17438,7 +17092,7 @@ msgstr ""
 # type: textblock
 #: ../fish/guestfish-actions.pod:407
 msgid ""
-"(Note, this is not the size in sectors, use C<blockdev-getsz> for that)."
+"(Note, this is not the size in sectors, use L</blockdev-getsz> for that)."
 msgstr ""
 
 # type: =head2
@@ -17455,4845 +17109,5235 @@ msgid ""
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:419
-msgid ""
-"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>."
+#: ../fish/guestfish-actions.pod:419
+msgid ""
+"See also L</blockdev-getss> for the real sector size of the device, and L</"
+"blockdev-getsize64> for the more useful I<size in bytes>."
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:425
+msgid "blockdev-rereadpt"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:427
+#, no-wrap
+msgid ""
+" blockdev-rereadpt device\n"
+"\n"
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:433
+msgid "blockdev-setbsz"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:435
+#, no-wrap
+msgid ""
+" blockdev-setbsz device blocksize\n"
+"\n"
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:444
+msgid "blockdev-setro"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:446
+#, no-wrap
+msgid ""
+" blockdev-setro device\n"
+"\n"
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:452
+msgid "blockdev-setrw"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:454
+#, no-wrap
+msgid ""
+" blockdev-setrw device\n"
+"\n"
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:460
+msgid "case-sensitive-path"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:462
+#, no-wrap
+msgid ""
+" case-sensitive-path path\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:486
+msgid ""
+"Thus L</case-sensitive-path> (\"/Windows/System32\")  might return C<\"/"
+"WINDOWS/system32\"> (the exact return value would depend on details of how "
+"the directories were originally created under Windows)."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:494
+msgid "See also L</realpath>."
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:496
+msgid "cat"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:498
+#, no-wrap
+msgid ""
+" cat path\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:502
+msgid ""
+"Note that this function cannot correctly handle binary files (specifically, "
+"files containing C<\\0> character which is treated as end of string).  For "
+"those you need to use the L</read-file> or L</download> functions which have "
+"a more complex interface."
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:510
+msgid "checksum"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:512
+#, no-wrap
+msgid ""
+" checksum csumtype path\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:555
+msgid "To get the checksum for a device, use L</checksum-device>."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:557
+msgid "To get the checksums for many files, use L</checksums-out>."
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:559
+msgid "checksum-device"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:561
+#, no-wrap
+msgid ""
+" checksum-device csumtype device\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:563
+msgid ""
+"This call computes the MD5, SHAx or CRC checksum of the contents of the "
+"device named C<device>.  For the types of checksums supported see the L</"
+"checksum> command."
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:567
+msgid "checksums-out"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:569
+#, no-wrap
+msgid ""
+" checksums-out csumtype directory (sumsfile|-)\n"
+"\n"
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:585
+msgid "chmod"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:587
+#, no-wrap
+msgid ""
+" chmod mode path\n"
+"\n"
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:598
+msgid "chown"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:600
+#, no-wrap
+msgid ""
+" chown owner group path\n"
+"\n"
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:608
+msgid "command"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:610
+#, no-wrap
+msgid ""
+" command 'arguments ...'\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:617
+msgid ""
+"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).  Note that the "
+"command runs directly, and is I<not> invoked via the shell (see L</sh>)."
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:645
+msgid "command-lines"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:647
+#, no-wrap
+msgid ""
+" command-lines 'arguments ...'\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:649
+msgid ""
+"This is the same as L</command>, but splits the result into a list of lines."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:652
+msgid "See also: L</sh-lines>"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:425
-msgid "blockdev-rereadpt"
+#: ../fish/guestfish-actions.pod:657
+msgid "config"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:427
+#: ../fish/guestfish-actions.pod:659
 #, no-wrap
 msgid ""
-" blockdev-rereadpt device\n"
+" config qemuparam qemuvalue\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:433
-msgid "blockdev-setbsz"
+#: ../fish/guestfish-actions.pod:670
+msgid "copy-size"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:435
+#: ../fish/guestfish-actions.pod:672
 #, no-wrap
 msgid ""
-" blockdev-setbsz device blocksize\n"
+" copy-size src dest size\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:444
-msgid "blockdev-setro"
+#: ../fish/guestfish-actions.pod:680
+msgid "cp"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:446
+#: ../fish/guestfish-actions.pod:682
 #, no-wrap
 msgid ""
-" blockdev-setro device\n"
+" cp src dest\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:452
-msgid "blockdev-setrw"
+#: ../fish/guestfish-actions.pod:687
+msgid "cp-a"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:454
+#: ../fish/guestfish-actions.pod:689
 #, no-wrap
 msgid ""
-" blockdev-setrw device\n"
+" cp-a src dest\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:460
-msgid "case-sensitive-path"
+#: ../fish/guestfish-actions.pod:694
+msgid "dd"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:462
+#: ../fish/guestfish-actions.pod:696
 #, no-wrap
 msgid ""
-" case-sensitive-path path\n"
+" dd src dest\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:486
+#: ../fish/guestfish-actions.pod:703
 msgid ""
-"Thus C<case-sensitive-path> (\"/Windows/System32\")  might return C<\"/"
-"WINDOWS/system32\"> (the exact return value would depend on details of how "
-"the directories were originally created under Windows)."
+"If the destination is a device, it must be as large or larger than the "
+"source file or device, otherwise the copy will fail.  This command cannot do "
+"partial copies (see L</copy-size>)."
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:707
+msgid "debug"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:709
+#, no-wrap
+msgid ""
+" debug subcmd 'extraargs ...'\n"
+"\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:494
-msgid "See also C<realpath>."
+#: ../fish/guestfish-actions.pod:711
+msgid ""
+"The L</debug> command exposes some internals of C<guestfsd> (the guestfs "
+"daemon) that runs inside the qemu subprocess."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:496
-msgid "cat"
+#: ../fish/guestfish-actions.pod:719
+msgid "debug-upload"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:498
+#: ../fish/guestfish-actions.pod:721
 #, no-wrap
 msgid ""
-" cat path\n"
+" debug-upload (filename|-) tmpname mode\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:502
+#: ../fish/guestfish-actions.pod:723
 msgid ""
-"Note that this function cannot correctly handle binary files (specifically, "
-"files containing C<\\0> character which is treated as end of string).  For "
-"those you need to use the C<read-file> or C<download> functions which have a "
-"more complex interface."
+"The L</debug-upload> command uploads a file to the libguestfs appliance."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:510
-msgid "checksum"
+#: ../fish/guestfish-actions.pod:732
+msgid "df"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:512
+#: ../fish/guestfish-actions.pod:734
 #, no-wrap
 msgid ""
-" checksum csumtype path\n"
+" df\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:555
-msgid "To get the checksum for a device, use C<checksum-device>."
+# type: =head2
+#: ../fish/guestfish-actions.pod:742
+msgid "df-h"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:557
-msgid "To get the checksums for many files, use C<checksums-out>."
+# type: verbatim
+#: ../fish/guestfish-actions.pod:744
+#, no-wrap
+msgid ""
+" df-h\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:559
-msgid "checksum-device"
+#: ../fish/guestfish-actions.pod:753
+msgid "dmesg"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:561
+#: ../fish/guestfish-actions.pod:755
 #, no-wrap
 msgid ""
-" checksum-device csumtype device\n"
+" dmesg\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:563
+#: ../fish/guestfish-actions.pod:761
 msgid ""
-"This call computes the MD5, SHAx or CRC checksum of the contents of the "
-"device named C<device>.  For the types of checksums supported see the "
-"C<checksum> command."
+"Another way to get the same information is to enable verbose messages with "
+"L</set-verbose> or by setting the environment variable C<LIBGUESTFS_DEBUG=1> "
+"before running the program."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:567
-msgid "checksums-out"
+#: ../fish/guestfish-actions.pod:766
+msgid "download"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:569
+#: ../fish/guestfish-actions.pod:768
 #, no-wrap
 msgid ""
-" checksums-out csumtype directory (sumsfile|-)\n"
+" download remotefilename (filename|-)\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:775
+msgid "See also L</upload>, L</cat>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:585
-msgid "chmod"
+#: ../fish/guestfish-actions.pod:779
+msgid "drop-caches"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:587
+#: ../fish/guestfish-actions.pod:781
 #, no-wrap
 msgid ""
-" chmod mode path\n"
+" drop-caches whattodrop\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:598
-msgid "chown"
+#: ../fish/guestfish-actions.pod:793
+msgid "du"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:600
+#: ../fish/guestfish-actions.pod:795
 #, no-wrap
 msgid ""
-" chown owner group path\n"
+" du path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:608
-msgid "command"
+#: ../fish/guestfish-actions.pod:807
+msgid "e2fsck-f"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:610
+#: ../fish/guestfish-actions.pod:809
 #, no-wrap
 msgid ""
-" command 'arguments ...'\n"
+" e2fsck-f device\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:617
+#: ../fish/guestfish-actions.pod:815
 msgid ""
-"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).  Note that the "
-"command runs directly, and is I<not> invoked via the shell (see C<sh>)."
+"This command is only needed because of L</resize2fs> (q.v.).  Normally you "
+"should use L</fsck>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:645
-msgid "command-lines"
+#: ../fish/guestfish-actions.pod:818
+msgid "echo-daemon"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:647
+#: ../fish/guestfish-actions.pod:820
 #, no-wrap
 msgid ""
-" command-lines 'arguments ...'\n"
+" echo-daemon 'words ...'\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:649
-msgid ""
-"This is the same as C<command>, but splits the result into a list of lines."
+#: ../fish/guestfish-actions.pod:827
+msgid "See also L</ping-daemon>."
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:652
-msgid "See also: C<sh-lines>"
+# type: =head2
+#: ../fish/guestfish-actions.pod:829
+msgid "egrep"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:831
+#, no-wrap
+msgid ""
+" egrep regex path\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:657
-msgid "config"
+#: ../fish/guestfish-actions.pod:839
+msgid "egrepi"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:659
+#: ../fish/guestfish-actions.pod:841
 #, no-wrap
 msgid ""
-" config qemuparam qemuvalue\n"
+" egrepi regex path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:670
-msgid "copy-size"
+#: ../fish/guestfish-actions.pod:849
+msgid "equal"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:672
+#: ../fish/guestfish-actions.pod:851
 #, no-wrap
 msgid ""
-" copy-size src dest size\n"
+" equal file1 file2\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:680
-msgid "cp"
+#: ../fish/guestfish-actions.pod:858
+msgid "exists"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:682
+#: ../fish/guestfish-actions.pod:860
 #, no-wrap
 msgid ""
-" cp src dest\n"
+" exists path\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:865
+msgid "See also L</is-file>, L</is-dir>, L</stat>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:687
-msgid "cp-a"
+#: ../fish/guestfish-actions.pod:867
+msgid "fallocate"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:689
+#: ../fish/guestfish-actions.pod:869
 #, no-wrap
 msgid ""
-" cp-a src dest\n"
+" fallocate path len\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:694
-msgid "dd"
+#: ../fish/guestfish-actions.pod:886
+msgid "fallocate64"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:696
+#: ../fish/guestfish-actions.pod:888
 #, no-wrap
 msgid ""
-" dd src dest\n"
+" fallocate64 path len\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:703
+#: ../fish/guestfish-actions.pod:894
 msgid ""
-"If the destination is a device, it must be as large or larger than the "
-"source file or device, otherwise the copy will fail.  This command cannot do "
-"partial copies (see C<copy-size>)."
+"Note that this call allocates disk blocks for the file.  To create a sparse "
+"file use L</truncate-size> instead."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:897
+msgid ""
+"The deprecated call L</fallocate> does the same, but owing to an oversight "
+"it only allowed 30 bit lengths to be specified, effectively limiting the "
+"maximum size of files created through that call to 1GB."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:707
-msgid "debug"
+#: ../fish/guestfish-actions.pod:906
+msgid "fgrep"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:709
+#: ../fish/guestfish-actions.pod:908
 #, no-wrap
 msgid ""
-" debug subcmd 'extraargs ...'\n"
+" fgrep pattern path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:711
+# type: =head2
+#: ../fish/guestfish-actions.pod:916
+msgid "fgrepi"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:918
+#, no-wrap
 msgid ""
-"The C<debug> command exposes some internals of C<guestfsd> (the guestfs "
-"daemon) that runs inside the qemu subprocess."
+" fgrepi pattern path\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:719
-msgid "debug-upload"
+#: ../fish/guestfish-actions.pod:926
+msgid "file"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:721
+#: ../fish/guestfish-actions.pod:928
 #, no-wrap
 msgid ""
-" debug-upload (filename|-) tmpname mode\n"
+" file path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:723
-msgid "The C<debug-upload> command uploads a file to the libguestfs appliance."
+#: ../fish/guestfish-actions.pod:940
+msgid ""
+"This command can also be used on C</dev/> devices (and partitions, LV "
+"names).  You can for example use this to determine if a device contains a "
+"filesystem, although it's usually better to use L</vfs-type>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:732
-msgid "df"
+#: ../fish/guestfish-actions.pod:950
+msgid "file-architecture"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:734
+#: ../fish/guestfish-actions.pod:952
 #, no-wrap
 msgid ""
-" df\n"
+" file-architecture filename\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:742
-msgid "df-h"
+#: ../fish/guestfish-actions.pod:1055
+msgid "filesize"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:744
+#: ../fish/guestfish-actions.pod:1057
 #, no-wrap
 msgid ""
-" df-h\n"
+" filesize file\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:1061
+msgid ""
+"To get other stats about a file, use L</stat>, L</lstat>, L</is-dir>, L</is-"
+"file> etc.  To get the size of block devices, use L</blockdev-getsize64>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:753
-msgid "dmesg"
+#: ../fish/guestfish-actions.pod:1065
+msgid "fill"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:755
+#: ../fish/guestfish-actions.pod:1067
 #, no-wrap
 msgid ""
-" dmesg\n"
+" fill c len path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:761
+#: ../fish/guestfish-actions.pod:1073
 msgid ""
-"Another way to get the same information is to enable verbose messages with "
-"C<set-verbose> or by setting the environment variable C<LIBGUESTFS_DEBUG=1> "
-"before running the program."
+"To fill a file with zero bytes (sparsely), it is much more efficient to use "
+"L</truncate-size>.  To create a file with a pattern of repeating bytes use "
+"L</fill-pattern>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:766
-msgid "download"
+#: ../fish/guestfish-actions.pod:1078
+msgid "fill-pattern"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:768
+#: ../fish/guestfish-actions.pod:1080
 #, no-wrap
 msgid ""
-" download remotefilename (filename|-)\n"
+" fill-pattern pattern len path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:775
-msgid "See also C<upload>, C<cat>."
+#: ../fish/guestfish-actions.pod:1082
+msgid ""
+"This function is like L</fill> except that it creates a new file of length "
+"C<len> containing the repeating pattern of bytes in C<pattern>.  The pattern "
+"is truncated if necessary to ensure the length of the file is exactly C<len> "
+"bytes."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:779
-msgid "drop-caches"
+#: ../fish/guestfish-actions.pod:1087
+msgid "find"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:781
+#: ../fish/guestfish-actions.pod:1089
 #, no-wrap
 msgid ""
-" drop-caches whattodrop\n"
+" find directory\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:1103
+msgid "then the returned list from L</find> C</tmp> would be 4 elements:"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:1116
+msgid "See also L</find0>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:793
-msgid "du"
+#: ../fish/guestfish-actions.pod:1121
+msgid "find0"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:795
+#: ../fish/guestfish-actions.pod:1123
 #, no-wrap
 msgid ""
-" du path\n"
+" find0 directory (files|-)\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:1129
+msgid ""
+"This command works the same way as L</find> with the following exceptions:"
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:807
-msgid "e2fsck-f"
+#: ../fish/guestfish-actions.pod:1156
+msgid "findfs-label"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:809
+#: ../fish/guestfish-actions.pod:1158
 #, no-wrap
 msgid ""
-" e2fsck-f device\n"
+" findfs-label label\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:815
-msgid ""
-"This command is only needed because of C<resize2fs> (q.v.).  Normally you "
-"should use C<fsck>."
+#: ../fish/guestfish-actions.pod:1164
+msgid "To find the label of a filesystem, use L</vfs-label>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:818
-msgid "echo-daemon"
+#: ../fish/guestfish-actions.pod:1166
+msgid "findfs-uuid"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:820
+#: ../fish/guestfish-actions.pod:1168
 #, no-wrap
 msgid ""
-" echo-daemon 'words ...'\n"
+" findfs-uuid uuid\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:827
-msgid "See also C<ping-daemon>."
+#: ../fish/guestfish-actions.pod:1174
+msgid "To find the UUID of a filesystem, use L</vfs-uuid>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:829
-msgid "egrep"
+#: ../fish/guestfish-actions.pod:1176
+msgid "fsck"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:831
+#: ../fish/guestfish-actions.pod:1178
 #, no-wrap
 msgid ""
-" egrep regex path\n"
+" fsck fstype device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:839
-msgid "egrepi"
+#: ../fish/guestfish-actions.pod:1208
+msgid "get-append"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:841
+#: ../fish/guestfish-actions.pod:1210
 #, no-wrap
 msgid ""
-" egrepi regex path\n"
+" get-append\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:849
-msgid "equal"
+#: ../fish/guestfish-actions.pod:1217
+msgid "get-autosync"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:851
+#: ../fish/guestfish-actions.pod:1219
 #, no-wrap
 msgid ""
-" equal file1 file2\n"
+" get-autosync\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:858
-msgid "exists"
+#: ../fish/guestfish-actions.pod:1223
+msgid "get-direct"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:860
+#: ../fish/guestfish-actions.pod:1225
 #, no-wrap
 msgid ""
-" exists path\n"
+" get-direct\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:865
-msgid "See also C<is-file>, C<is-dir>, C<stat>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:867
-msgid "fallocate"
+#: ../fish/guestfish-actions.pod:1229
+msgid "get-e2label"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:869
+#: ../fish/guestfish-actions.pod:1231
 #, no-wrap
 msgid ""
-" fallocate path len\n"
+" get-e2label device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:886
-msgid "fallocate64"
+#: ../fish/guestfish-actions.pod:1243
+msgid "get-e2uuid"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:888
+#: ../fish/guestfish-actions.pod:1245
 #, no-wrap
 msgid ""
-" fallocate64 path len\n"
+" get-e2uuid device\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:894
+# type: =head2
+#: ../fish/guestfish-actions.pod:1257
+msgid "get-memsize"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:1259
+#, no-wrap
 msgid ""
-"Note that this call allocates disk blocks for the file.  To create a sparse "
-"file use C<truncate-size> instead."
+" get-memsize\n"
+"\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:897
+#: ../fish/guestfish-actions.pod:1264
 msgid ""
-"The deprecated call C<fallocate> does the same, but owing to an oversight it "
-"only allowed 30 bit lengths to be specified, effectively limiting the "
-"maximum size of files created through that call to 1GB."
+"If L</set-memsize> was not called on this handle, and if "
+"C<LIBGUESTFS_MEMSIZE> was not set, then this returns the compiled-in default "
+"value for memsize."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:906
-msgid "fgrep"
+#: ../fish/guestfish-actions.pod:1271
+msgid "get-network"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:908
+#: ../fish/guestfish-actions.pod:1273
 #, no-wrap
 msgid ""
-" fgrep pattern path\n"
+" get-network\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:916
-msgid "fgrepi"
+#: ../fish/guestfish-actions.pod:1277
+msgid "get-path"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:918
+#: ../fish/guestfish-actions.pod:1279
 #, no-wrap
 msgid ""
-" fgrepi pattern path\n"
+" get-path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:926
-msgid "file"
+#: ../fish/guestfish-actions.pod:1286
+msgid "get-pid | pid"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:928
+#: ../fish/guestfish-actions.pod:1288
 #, no-wrap
 msgid ""
-" file path\n"
+" get-pid\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:940
+# type: =head2
+#: ../fish/guestfish-actions.pod:1295
+msgid "get-qemu"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:1297
+#, no-wrap
 msgid ""
-"This command can also be used on C</dev/> devices (and partitions, LV "
-"names).  You can for example use this to determine if a device contains a "
-"filesystem, although it's usually better to use C<vfs-type>."
+" get-qemu\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:950
-msgid "file-architecture"
+#: ../fish/guestfish-actions.pod:1304
+msgid "get-recovery-proc"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:952
+#: ../fish/guestfish-actions.pod:1306
 #, no-wrap
 msgid ""
-" file-architecture filename\n"
+" get-recovery-proc\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1055
-msgid "filesize"
+#: ../fish/guestfish-actions.pod:1310
+msgid "get-selinux"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1057
+#: ../fish/guestfish-actions.pod:1312
 #, no-wrap
 msgid ""
-" filesize file\n"
+" get-selinux\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1061
+#: ../fish/guestfish-actions.pod:1314
 msgid ""
-"To get other stats about a file, use C<stat>, C<lstat>, C<is-dir>, C<is-"
-"file> etc.  To get the size of block devices, use C<blockdev-getsize64>."
+"This returns the current setting of the selinux flag which is passed to the "
+"appliance at boot time.  See L</set-selinux>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1065
-msgid "fill"
+#: ../fish/guestfish-actions.pod:1320
+msgid "get-state"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1067
+#: ../fish/guestfish-actions.pod:1322
 #, no-wrap
 msgid ""
-" fill c len path\n"
+" get-state\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1073
+# type: =head2
+#: ../fish/guestfish-actions.pod:1329
+msgid "get-trace"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:1331
+#, no-wrap
 msgid ""
-"To fill a file with zero bytes (sparsely), it is much more efficient to use "
-"C<truncate-size>.  To create a file with a pattern of repeating bytes use "
-"C<fill-pattern>."
+" get-trace\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1078
-msgid "fill-pattern"
+#: ../fish/guestfish-actions.pod:1335
+msgid "get-umask"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1080
+#: ../fish/guestfish-actions.pod:1337
 #, no-wrap
 msgid ""
-" fill-pattern pattern len path\n"
+" get-umask\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1082
+#: ../fish/guestfish-actions.pod:1339
 msgid ""
-"This function is like C<fill> except that it creates a new file of length "
-"C<len> containing the repeating pattern of bytes in C<pattern>.  The pattern "
-"is truncated if necessary to ensure the length of the file is exactly C<len> "
-"bytes."
+"Return the current umask.  By default the umask is C<022> unless it has been "
+"set by calling L</umask>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1087
-msgid "find"
+#: ../fish/guestfish-actions.pod:1342
+msgid "get-verbose"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1089
+#: ../fish/guestfish-actions.pod:1344
 #, no-wrap
 msgid ""
-" find directory\n"
+" get-verbose\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1103
-msgid "then the returned list from C<find> C</tmp> would be 4 elements:"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:1116
-msgid "See also C<find0>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:1121
-msgid "find0"
+#: ../fish/guestfish-actions.pod:1348
+msgid "getcon"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1123
+#: ../fish/guestfish-actions.pod:1350
 #, no-wrap
 msgid ""
-" find0 directory (files|-)\n"
+" getcon\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1129
-msgid ""
-"This command works the same way as C<find> with the following exceptions:"
+#: ../fish/guestfish-actions.pod:1354
+msgid "See the documentation about SELINUX in L<guestfs(3)>, and L</setcon>"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1156
-msgid "findfs-label"
+#: ../fish/guestfish-actions.pod:1357
+msgid "getxattrs"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1158
+#: ../fish/guestfish-actions.pod:1359
 #, no-wrap
 msgid ""
-" findfs-label label\n"
+" getxattrs path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1164
-msgid "To find the label of a filesystem, use C<vfs-label>."
+#: ../fish/guestfish-actions.pod:1367
+msgid "See also: L</lgetxattrs>, L<attr(5)>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1166
-msgid "findfs-uuid"
+#: ../fish/guestfish-actions.pod:1369
+msgid "glob-expand"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1168
+#: ../fish/guestfish-actions.pod:1371
 #, no-wrap
 msgid ""
-" findfs-uuid uuid\n"
+" glob-expand pattern\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1174
-msgid "To find the UUID of a filesystem, use C<vfs-uuid>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:1176
-msgid "fsck"
+#: ../fish/guestfish-actions.pod:1384
+msgid "grep"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1178
+#: ../fish/guestfish-actions.pod:1386
 #, no-wrap
 msgid ""
-" fsck fstype device\n"
+" grep regex path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1208
-msgid "get-append"
+#: ../fish/guestfish-actions.pod:1394
+msgid "grepi"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1210
+#: ../fish/guestfish-actions.pod:1396
 #, no-wrap
 msgid ""
-" get-append\n"
+" grepi regex path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1217
-msgid "get-autosync"
+#: ../fish/guestfish-actions.pod:1404
+msgid "grub-install"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1219
+#: ../fish/guestfish-actions.pod:1406
 #, no-wrap
 msgid ""
-" get-autosync\n"
+" grub-install root device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1223
-msgid "get-direct"
+#: ../fish/guestfish-actions.pod:1422
+msgid "head"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1225
+#: ../fish/guestfish-actions.pod:1424
 #, no-wrap
 msgid ""
-" get-direct\n"
+" head path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1229
-msgid "get-e2label"
+#: ../fish/guestfish-actions.pod:1432
+msgid "head-n"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1231
+#: ../fish/guestfish-actions.pod:1434
 #, no-wrap
 msgid ""
-" get-e2label device\n"
+" head-n nrlines path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1243
-msgid "get-e2uuid"
+#: ../fish/guestfish-actions.pod:1447
+msgid "hexdump"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1245
+#: ../fish/guestfish-actions.pod:1449
 #, no-wrap
 msgid ""
-" get-e2uuid device\n"
+" hexdump path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1257
-msgid "get-memsize"
+#: ../fish/guestfish-actions.pod:1457
+msgid "initrd-cat"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1259
+#: ../fish/guestfish-actions.pod:1459
 #, no-wrap
 msgid ""
-" get-memsize\n"
+" initrd-cat initrdpath filename\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1264
-msgid ""
-"If C<set-memsize> was not called on this handle, and if "
-"C<LIBGUESTFS_MEMSIZE> was not set, then this returns the compiled-in default "
-"value for memsize."
+#: ../fish/guestfish-actions.pod:1471
+msgid "See also L</initrd-list>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1271
-msgid "get-network"
+#: ../fish/guestfish-actions.pod:1476
+msgid "initrd-list"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1273
+#: ../fish/guestfish-actions.pod:1478
 #, no-wrap
 msgid ""
-" get-network\n"
+" initrd-list path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1277
-msgid "get-path"
+#: ../fish/guestfish-actions.pod:1490
+msgid "inotify-add-watch"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1279
+#: ../fish/guestfish-actions.pod:1492
 #, no-wrap
 msgid ""
-" get-path\n"
+" inotify-add-watch path mask\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1286
-msgid "get-pid | pid"
+#: ../fish/guestfish-actions.pod:1504
+msgid "inotify-close"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1288
+#: ../fish/guestfish-actions.pod:1506
 #, no-wrap
 msgid ""
-" get-pid\n"
+" inotify-close\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1295
-msgid "get-qemu"
+#: ../fish/guestfish-actions.pod:1512
+msgid "inotify-files"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1297
+#: ../fish/guestfish-actions.pod:1514
 #, no-wrap
 msgid ""
-" get-qemu\n"
+" inotify-files\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:1516
+msgid ""
+"This function is a helpful wrapper around L</inotify-read> which just "
+"returns a list of pathnames of objects that were touched.  The returned "
+"pathnames are sorted and deduplicated."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1304
-msgid "get-recovery-proc"
+#: ../fish/guestfish-actions.pod:1520
+msgid "inotify-init"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1306
+#: ../fish/guestfish-actions.pod:1522
 #, no-wrap
 msgid ""
-" get-recovery-proc\n"
+" inotify-init maxevents\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:1310
-msgid "get-selinux"
+# type: textblock
+#: ../fish/guestfish-actions.pod:1528
+msgid ""
+"C<maxevents> is the maximum number of events which will be queued up between "
+"calls to L</inotify-read> or L</inotify-files>.  If this is passed as C<0>, "
+"then the kernel (or previously set)  default is used.  For Linux 2.6.29 the "
+"default was 16384 events.  Beyond this limit, the kernel throws away events, "
+"but records the fact that it threw them away by setting a flag "
+"C<IN_Q_OVERFLOW> in the returned structure list (see L</inotify-read>)."
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish-actions.pod:1312
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish-actions.pod:1538
 msgid ""
-" get-selinux\n"
-"\n"
+"Before any events are generated, you have to add some watches to the "
+"internal watch list.  See: L</inotify-add-watch>, L</inotify-rm-watch> and "
+"L</inotify-watch-all>."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1314
+#: ../fish/guestfish-actions.pod:1544
 msgid ""
-"This returns the current setting of the selinux flag which is passed to the "
-"appliance at boot time.  See C<set-selinux>."
+"Queued up events should be read periodically by calling L</inotify-read> (or "
+"L</inotify-files> which is just a helpful wrapper around L</inotify-read>).  "
+"If you don't read the events out often enough then you risk the internal "
+"queue overflowing."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:1551
+msgid ""
+"The handle should be closed after use by calling L</inotify-close>.  This "
+"also removes any watches automatically."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1320
-msgid "get-state"
+#: ../fish/guestfish-actions.pod:1560
+msgid "inotify-read"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1322
+#: ../fish/guestfish-actions.pod:1562
 #, no-wrap
 msgid ""
-" get-state\n"
+" inotify-read\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1329
-msgid "get-trace"
+#: ../fish/guestfish-actions.pod:1575
+msgid "inotify-rm-watch"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1331
+#: ../fish/guestfish-actions.pod:1577
 #, no-wrap
 msgid ""
-" get-trace\n"
+" inotify-rm-watch wd\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:1579
+msgid "Remove a previously defined inotify watch.  See L</inotify-add-watch>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1335
-msgid "get-umask"
+#: ../fish/guestfish-actions.pod:1582
+msgid "inspect-get-arch"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1337
+#: ../fish/guestfish-actions.pod:1584
 #, no-wrap
 msgid ""
-" get-umask\n"
+" inspect-get-arch root\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1339
+#: ../fish/guestfish-actions.pod:1586 ../fish/guestfish-actions.pod:1602
+#: ../fish/guestfish-actions.pod:1648 ../fish/guestfish-actions.pod:1666
+#: ../fish/guestfish-actions.pod:1687 ../fish/guestfish-actions.pod:1702
+#: ../fish/guestfish-actions.pod:1725 ../fish/guestfish-actions.pod:1742
 msgid ""
-"Return the current umask.  By default the umask is C<022> unless it has been "
-"set by calling C<umask>."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish-actions.pod:1342
-msgid "get-verbose"
+"This function should only be called with a root device string as returned by "
+"L</inspect-os>."
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish-actions.pod:1344
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish-actions.pod:1589
 msgid ""
-" get-verbose\n"
-"\n"
+"This returns the architecture of the inspected operating system.  The "
+"possible return values are listed under L</file-architecture>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1348
-msgid "getcon"
+#: ../fish/guestfish-actions.pod:1598
+msgid "inspect-get-distro"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1350
+#: ../fish/guestfish-actions.pod:1600
 #, no-wrap
 msgid ""
-" getcon\n"
+" inspect-get-distro root\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1354
-msgid "See the documentation about SELINUX in L<guestfs(3)>, and C<setcon>"
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:1357
-msgid "getxattrs"
+#: ../fish/guestfish-actions.pod:1644
+msgid "inspect-get-filesystems"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1359
+#: ../fish/guestfish-actions.pod:1646
 #, no-wrap
 msgid ""
-" getxattrs path\n"
+" inspect-get-filesystems root\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1367
-msgid "See also: C<lgetxattrs>, L<attr(5)>."
+#: ../fish/guestfish-actions.pod:1659
+msgid ""
+"Please read L<guestfs(3)/INSPECTION> for more details.  See also L</inspect-"
+"get-mountpoints>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1369
-msgid "glob-expand"
+#: ../fish/guestfish-actions.pod:1662
+msgid "inspect-get-major-version"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1371
+#: ../fish/guestfish-actions.pod:1664
 #, no-wrap
 msgid ""
-" glob-expand pattern\n"
+" inspect-get-major-version root\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1384
-msgid "grep"
+#: ../fish/guestfish-actions.pod:1683
+msgid "inspect-get-minor-version"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1386
+#: ../fish/guestfish-actions.pod:1685
 #, no-wrap
 msgid ""
-" grep regex path\n"
+" inspect-get-minor-version root\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:1695
+msgid ""
+"Please read L<guestfs(3)/INSPECTION> for more details.  See also L</inspect-"
+"get-major-version>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1394
-msgid "grepi"
+#: ../fish/guestfish-actions.pod:1698
+msgid "inspect-get-mountpoints"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1396
+#: ../fish/guestfish-actions.pod:1700
 #, no-wrap
 msgid ""
-" grepi regex path\n"
+" inspect-get-mountpoints root\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:1718
+msgid ""
+"Please read L<guestfs(3)/INSPECTION> for more details.  See also L</inspect-"
+"get-filesystems>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1404
-msgid "grub-install"
+#: ../fish/guestfish-actions.pod:1721
+msgid "inspect-get-product-name"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1406
+#: ../fish/guestfish-actions.pod:1723
 #, no-wrap
 msgid ""
-" grub-install root device\n"
+" inspect-get-product-name root\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1422
-msgid "head"
+#: ../fish/guestfish-actions.pod:1738
+msgid "inspect-get-type"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1424
+#: ../fish/guestfish-actions.pod:1740
 #, no-wrap
 msgid ""
-" head path\n"
+" inspect-get-type root\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1432
-msgid "head-n"
+#: ../fish/guestfish-actions.pod:1769
+msgid "inspect-os"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1434
+#: ../fish/guestfish-actions.pod:1771
 #, no-wrap
 msgid ""
-" head-n nrlines path\n"
+" inspect-os\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:1447
-msgid "hexdump"
+# type: textblock
+#: ../fish/guestfish-actions.pod:1786
+msgid ""
+"You can pass the root string(s) returned to other L</inspect-get-*> "
+"functions in order to query further information about each operating system, "
+"such as the name and version."
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish-actions.pod:1449
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish-actions.pod:1791
 msgid ""
-" hexdump path\n"
-"\n"
+"This function uses other libguestfs features such as L</mount-ro> and L</"
+"umount-all> in order to mount and unmount filesystems and look at the "
+"contents.  This should be called with no disks currently mounted.  The "
+"function may also use Augeas, so any existing Augeas handle will be closed."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:1803 ../fish/guestfish-actions.pod:1957
+#: ../fish/guestfish-actions.pod:2003
+msgid "See also L</list-filesystems>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1457
-msgid "initrd-cat"
+#: ../fish/guestfish-actions.pod:1805
+msgid "is-blockdev"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1459
+#: ../fish/guestfish-actions.pod:1807
 #, no-wrap
 msgid ""
-" initrd-cat initrdpath filename\n"
+" is-blockdev path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1471
-msgid "See also C<initrd-list>."
+#: ../fish/guestfish-actions.pod:1812 ../fish/guestfish-actions.pod:1830
+#: ../fish/guestfish-actions.pod:1849 ../fish/guestfish-actions.pod:1858
+#: ../fish/guestfish-actions.pod:1868 ../fish/guestfish-actions.pod:1902
+#: ../fish/guestfish-actions.pod:1911
+msgid "See also L</stat>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1476
-msgid "initrd-list"
+#: ../fish/guestfish-actions.pod:1814
+msgid "is-busy"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1478
+#: ../fish/guestfish-actions.pod:1816
 #, no-wrap
 msgid ""
-" initrd-list path\n"
+" is-busy\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1490
-msgid "inotify-add-watch"
+#: ../fish/guestfish-actions.pod:1823
+msgid "is-chardev"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1492
+#: ../fish/guestfish-actions.pod:1825
 #, no-wrap
 msgid ""
-" inotify-add-watch path mask\n"
+" is-chardev path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1504
-msgid "inotify-close"
+#: ../fish/guestfish-actions.pod:1832
+msgid "is-config"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1506
+#: ../fish/guestfish-actions.pod:1834
 #, no-wrap
 msgid ""
-" inotify-close\n"
+" is-config\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1512
-msgid "inotify-files"
+#: ../fish/guestfish-actions.pod:1841
+msgid "is-dir"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1514
+#: ../fish/guestfish-actions.pod:1843
 #, no-wrap
 msgid ""
-" inotify-files\n"
+" is-dir path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1516
-msgid ""
-"This function is a helpful wrapper around C<inotify-read> which just returns "
-"a list of pathnames of objects that were touched.  The returned pathnames "
-"are sorted and deduplicated."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:1520
-msgid "inotify-init"
+#: ../fish/guestfish-actions.pod:1851
+msgid "is-fifo"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1522
+#: ../fish/guestfish-actions.pod:1853
 #, no-wrap
 msgid ""
-" inotify-init maxevents\n"
+" is-fifo path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1528
-msgid ""
-"C<maxevents> is the maximum number of events which will be queued up between "
-"calls to C<inotify-read> or C<inotify-files>.  If this is passed as C<0>, "
-"then the kernel (or previously set)  default is used.  For Linux 2.6.29 the "
-"default was 16384 events.  Beyond this limit, the kernel throws away events, "
-"but records the fact that it threw them away by setting a flag "
-"C<IN_Q_OVERFLOW> in the returned structure list (see C<inotify-read>)."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:1538
-msgid ""
-"Before any events are generated, you have to add some watches to the "
-"internal watch list.  See: C<inotify-add-watch>, C<inotify-rm-watch> and "
-"C<inotify-watch-all>."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:1544
-msgid ""
-"Queued up events should be read periodically by calling C<inotify-read> (or "
-"C<inotify-files> which is just a helpful wrapper around C<inotify-read>).  "
-"If you don't read the events out often enough then you risk the internal "
-"queue overflowing."
+# type: =head2
+#: ../fish/guestfish-actions.pod:1860
+msgid "is-file"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1551
+# type: verbatim
+#: ../fish/guestfish-actions.pod:1862
+#, no-wrap
 msgid ""
-"The handle should be closed after use by calling C<inotify-close>.  This "
-"also removes any watches automatically."
+" is-file path\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1560
-msgid "inotify-read"
+#: ../fish/guestfish-actions.pod:1870
+msgid "is-launching"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1562
+#: ../fish/guestfish-actions.pod:1872
 #, no-wrap
 msgid ""
-" inotify-read\n"
+" is-launching\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1575
-msgid "inotify-rm-watch"
+#: ../fish/guestfish-actions.pod:1879
+msgid "is-lv"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1577
+#: ../fish/guestfish-actions.pod:1881
 #, no-wrap
 msgid ""
-" inotify-rm-watch wd\n"
+" is-lv device\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1579
-msgid "Remove a previously defined inotify watch.  See C<inotify-add-watch>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:1582
-msgid "inspect-get-arch"
+#: ../fish/guestfish-actions.pod:1886
+msgid "is-ready"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1584
+#: ../fish/guestfish-actions.pod:1888
 #, no-wrap
 msgid ""
-" inspect-get-arch root\n"
+" is-ready\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1586 ../fish/guestfish-actions.pod:1602
-#: ../fish/guestfish-actions.pod:1648 ../fish/guestfish-actions.pod:1666
-#: ../fish/guestfish-actions.pod:1687 ../fish/guestfish-actions.pod:1702
-#: ../fish/guestfish-actions.pod:1725 ../fish/guestfish-actions.pod:1742
-msgid ""
-"This function should only be called with a root device string as returned by "
-"C<inspect-os>."
+# type: =head2
+#: ../fish/guestfish-actions.pod:1895
+msgid "is-socket"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1589
+# type: verbatim
+#: ../fish/guestfish-actions.pod:1897
+#, no-wrap
 msgid ""
-"This returns the architecture of the inspected operating system.  The "
-"possible return values are listed under C<file-architecture>."
+" is-socket path\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1598
-msgid "inspect-get-distro"
+#: ../fish/guestfish-actions.pod:1904
+msgid "is-symlink"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1600
+#: ../fish/guestfish-actions.pod:1906
 #, no-wrap
 msgid ""
-" inspect-get-distro root\n"
+" is-symlink path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1644
-msgid "inspect-get-filesystems"
+#: ../fish/guestfish-actions.pod:1913
+msgid "kill-subprocess"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1646
+#: ../fish/guestfish-actions.pod:1915
 #, no-wrap
 msgid ""
-" inspect-get-filesystems root\n"
+" kill-subprocess\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1659
-msgid ""
-"Please read L<guestfs(3)/INSPECTION> for more details.  See also C<inspect-"
-"get-mountpoints>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:1662
-msgid "inspect-get-major-version"
+#: ../fish/guestfish-actions.pod:1919
+msgid "launch | run"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1664
+#: ../fish/guestfish-actions.pod:1921
 #, no-wrap
 msgid ""
-" inspect-get-major-version root\n"
+" launch\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1683
-msgid "inspect-get-minor-version"
+#: ../fish/guestfish-actions.pod:1929
+msgid "lchown"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1685
+#: ../fish/guestfish-actions.pod:1931
 #, no-wrap
 msgid ""
-" inspect-get-minor-version root\n"
+" lchown owner group path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1695
+#: ../fish/guestfish-actions.pod:1933
 msgid ""
-"Please read L<guestfs(3)/INSPECTION> for more details.  See also C<inspect-"
-"get-major-version>."
+"Change the file owner to C<owner> and group to C<group>.  This is like L</"
+"chown> but if C<path> is a symlink then the link itself is changed, not the "
+"target."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1698
-msgid "inspect-get-mountpoints"
+#: ../fish/guestfish-actions.pod:1941
+msgid "lgetxattrs"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1700
+#: ../fish/guestfish-actions.pod:1943
 #, no-wrap
 msgid ""
-" inspect-get-mountpoints root\n"
+" lgetxattrs path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1718
+#: ../fish/guestfish-actions.pod:1945
 msgid ""
-"Please read L<guestfs(3)/INSPECTION> for more details.  See also C<inspect-"
-"get-filesystems>."
+"This is the same as L</getxattrs>, but if C<path> is a symbolic link, then "
+"it returns the extended attributes of the link itself."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1721
-msgid "inspect-get-product-name"
+#: ../fish/guestfish-actions.pod:1949
+msgid "list-devices"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1723
+#: ../fish/guestfish-actions.pod:1951
 #, no-wrap
 msgid ""
-" inspect-get-product-name root\n"
+" list-devices\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1738
-msgid "inspect-get-type"
+#: ../fish/guestfish-actions.pod:1959
+msgid "list-filesystems"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1740
+#: ../fish/guestfish-actions.pod:1961
 #, no-wrap
 msgid ""
-" inspect-get-type root\n"
+" list-filesystems\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:1980
+msgid ""
+"This command runs other libguestfs commands, which might include L</mount> "
+"and L</umount>, and therefore you should use this soon after launch and only "
+"when nothing is mounted."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:1984
+msgid ""
+"Not all of the filesystems returned will be mountable.  In particular, swap "
+"partitions are returned in the list.  Also this command does not check that "
+"each filesystem found is valid and mountable, and some filesystems might be "
+"mountable but require special options.  Filesystems may not all belong to a "
+"single logical operating system (use L</inspect-os> to look for OSes)."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1769
-msgid "inspect-os"
+#: ../fish/guestfish-actions.pod:1992
+msgid "list-partitions"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1771
+#: ../fish/guestfish-actions.pod:1994
 #, no-wrap
 msgid ""
-" inspect-os\n"
+" list-partitions\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1786
+#: ../fish/guestfish-actions.pod:2000
 msgid ""
-"You can pass the root string(s) returned to other C<inspect-get-*> functions "
-"in order to query further information about each operating system, such as "
-"the name and version."
+"This does not return logical volumes.  For that you will need to call L</"
+"lvs>."
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1791
-msgid ""
-"This function uses other libguestfs features such as C<mount-ro> and "
-"C<umount-all> in order to mount and unmount filesystems and look at the "
-"contents.  This should be called with no disks currently mounted.  The "
-"function may also use Augeas, so any existing Augeas handle will be closed."
+# type: =head2
+#: ../fish/guestfish-actions.pod:2005
+msgid "ll"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1803 ../fish/guestfish-actions.pod:1957
-#: ../fish/guestfish-actions.pod:2003
-msgid "See also C<list-filesystems>."
+# type: verbatim
+#: ../fish/guestfish-actions.pod:2007
+#, no-wrap
+msgid ""
+" ll directory\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1805
-msgid "is-blockdev"
+#: ../fish/guestfish-actions.pod:2015
+msgid "ln"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1807
+#: ../fish/guestfish-actions.pod:2017
 #, no-wrap
 msgid ""
-" is-blockdev path\n"
+" ln target linkname\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:1812 ../fish/guestfish-actions.pod:1830
-#: ../fish/guestfish-actions.pod:1849 ../fish/guestfish-actions.pod:1858
-#: ../fish/guestfish-actions.pod:1868 ../fish/guestfish-actions.pod:1902
-#: ../fish/guestfish-actions.pod:1911
-msgid "See also C<stat>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:1814
-msgid "is-busy"
+#: ../fish/guestfish-actions.pod:2021
+msgid "ln-f"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1816
+#: ../fish/guestfish-actions.pod:2023
 #, no-wrap
 msgid ""
-" is-busy\n"
+" ln-f target linkname\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1823
-msgid "is-chardev"
+#: ../fish/guestfish-actions.pod:2028
+msgid "ln-s"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1825
+#: ../fish/guestfish-actions.pod:2030
 #, no-wrap
 msgid ""
-" is-chardev path\n"
+" ln-s target linkname\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1832
-msgid "is-config"
+#: ../fish/guestfish-actions.pod:2034
+msgid "ln-sf"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1834
+#: ../fish/guestfish-actions.pod:2036
 #, no-wrap
 msgid ""
-" is-config\n"
+" ln-sf target linkname\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1841
-msgid "is-dir"
+#: ../fish/guestfish-actions.pod:2041
+msgid "lremovexattr"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1843
+#: ../fish/guestfish-actions.pod:2043
 #, no-wrap
 msgid ""
-" is-dir path\n"
+" lremovexattr xattr path\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2045
+msgid ""
+"This is the same as L</removexattr>, but if C<path> is a symbolic link, then "
+"it removes an extended attribute of the link itself."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1851
-msgid "is-fifo"
+#: ../fish/guestfish-actions.pod:2049
+msgid "ls"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1853
+#: ../fish/guestfish-actions.pod:2051
 #, no-wrap
 msgid ""
-" is-fifo path\n"
+" ls directory\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2057
+msgid ""
+"This command is mostly useful for interactive sessions.  Programs should "
+"probably use L</readdir> instead."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1860
-msgid "is-file"
+#: ../fish/guestfish-actions.pod:2060
+msgid "lsetxattr"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1862
+#: ../fish/guestfish-actions.pod:2062
 #, no-wrap
 msgid ""
-" is-file path\n"
+" lsetxattr xattr val vallen path\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2064
+msgid ""
+"This is the same as L</setxattr>, but if C<path> is a symbolic link, then it "
+"sets an extended attribute of the link itself."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1870
-msgid "is-launching"
+#: ../fish/guestfish-actions.pod:2068
+msgid "lstat"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1872
+#: ../fish/guestfish-actions.pod:2070
 #, no-wrap
 msgid ""
-" is-launching\n"
+" lstat path\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2074
+msgid ""
+"This is the same as L</stat> except that if C<path> is a symbolic link, then "
+"the link is stat-ed, not the file it refers to."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1879
-msgid "is-lv"
+#: ../fish/guestfish-actions.pod:2080
+msgid "lstatlist"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1881
+#: ../fish/guestfish-actions.pod:2082
 #, no-wrap
 msgid ""
-" is-lv device\n"
+" lstatlist path 'names ...'\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2084
+msgid ""
+"This call allows you to perform the L</lstat> operation on multiple files, "
+"where all files are in the directory C<path>.  C<names> is the list of files "
+"from this directory."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:2093
+msgid ""
+"This call is intended for programs that want to efficiently list a directory "
+"contents without making many round-trips.  See also L</lxattrlist> for a "
+"similarly efficient call for getting extended attributes.  Very long "
+"directory listings might cause the protocol message size to be exceeded, "
+"causing this call to fail.  The caller must split up such requests into "
+"smaller groups of names."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1886
-msgid "is-ready"
+#: ../fish/guestfish-actions.pod:2101
+msgid "luks-add-key"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1888
+#: ../fish/guestfish-actions.pod:2103
 #, no-wrap
 msgid ""
-" is-ready\n"
+" luks-add-key device keyslot\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2110
+msgid ""
+"Note that if C<keyslot> already contains a key, then this command will "
+"fail.  You have to use L</luks-kill-slot> first to remove that key."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:2114 ../fish/guestfish-actions.pod:2136
+#: ../fish/guestfish-actions.pod:2149 ../fish/guestfish-actions.pod:2163
+#: ../fish/guestfish-actions.pod:2186 ../fish/guestfish-actions.pod:2196
+msgid ""
+"This command has one or more key or passphrase parameters.  Guestfish will "
+"prompt for these separately."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1895
-msgid "is-socket"
+#: ../fish/guestfish-actions.pod:2117
+msgid "luks-close"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1897
+#: ../fish/guestfish-actions.pod:2119
 #, no-wrap
 msgid ""
-" is-socket path\n"
+" luks-close device\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2121
+msgid ""
+"This closes a LUKS device that was created earlier by L</luks-open> or L</"
+"luks-open-ro>.  The C<device> parameter must be the name of the LUKS mapping "
+"device (ie. C</dev/mapper/mapname>) and I<not> the name of the underlying "
+"block device."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1904
-msgid "is-symlink"
+#: ../fish/guestfish-actions.pod:2127
+msgid "luks-format"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1906
+#: ../fish/guestfish-actions.pod:2129
 #, no-wrap
 msgid ""
-" is-symlink path\n"
+" luks-format device keyslot\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1913
-msgid "kill-subprocess"
+#: ../fish/guestfish-actions.pod:2142
+msgid "luks-format-cipher"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1915
+#: ../fish/guestfish-actions.pod:2144
 #, no-wrap
 msgid ""
-" kill-subprocess\n"
+" luks-format-cipher device keyslot cipher\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2146
+msgid ""
+"This command is the same as L</luks-format> but it also allows you to set "
+"the C<cipher> used."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:1919
-msgid "launch | run"
+#: ../fish/guestfish-actions.pod:2155
+msgid "luks-kill-slot"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1921
+#: ../fish/guestfish-actions.pod:2157
 #, no-wrap
 msgid ""
-" launch\n"
+" luks-kill-slot device keyslot\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1929
-msgid "lchown"
+#: ../fish/guestfish-actions.pod:2166
+msgid "luks-open"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1931
+#: ../fish/guestfish-actions.pod:2168
 #, no-wrap
 msgid ""
-" lchown owner group path\n"
+" luks-open device mapname\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1933
+#: ../fish/guestfish-actions.pod:2182
 msgid ""
-"Change the file owner to C<owner> and group to C<group>.  This is like "
-"C<chown> but if C<path> is a symlink then the link itself is changed, not "
-"the target."
+"If this block device contains LVM volume groups, then calling L</vgscan> "
+"followed by L</vg-activate-all> will make them visible."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1941
-msgid "lgetxattrs"
+#: ../fish/guestfish-actions.pod:2189
+msgid "luks-open-ro"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1943
+#: ../fish/guestfish-actions.pod:2191
 #, no-wrap
 msgid ""
-" lgetxattrs path\n"
+" luks-open-ro device mapname\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1945
+#: ../fish/guestfish-actions.pod:2193
 msgid ""
-"This is the same as C<getxattrs>, but if C<path> is a symbolic link, then it "
-"returns the extended attributes of the link itself."
+"This is the same as L</luks-open> except that a read-only mapping is created."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1949
-msgid "list-devices"
+#: ../fish/guestfish-actions.pod:2199
+msgid "lvcreate"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1951
+#: ../fish/guestfish-actions.pod:2201
 #, no-wrap
 msgid ""
-" list-devices\n"
+" lvcreate logvol volgroup mbytes\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1959
-msgid "list-filesystems"
+#: ../fish/guestfish-actions.pod:2206
+msgid "lvm-clear-filter"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1961
+#: ../fish/guestfish-actions.pod:2208
 #, no-wrap
 msgid ""
-" list-filesystems\n"
+" lvm-clear-filter\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:1980
-msgid ""
-"This command runs other libguestfs commands, which might include C<mount> "
-"and C<umount>, and therefore you should use this soon after launch and only "
-"when nothing is mounted."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:1984
+#: ../fish/guestfish-actions.pod:2210
 msgid ""
-"Not all of the filesystems returned will be mountable.  In particular, swap "
-"partitions are returned in the list.  Also this command does not check that "
-"each filesystem found is valid and mountable, and some filesystems might be "
-"mountable but require special options.  Filesystems may not all belong to a "
-"single logical operating system (use C<inspect-os> to look for OSes)."
+"This undoes the effect of L</lvm-set-filter>.  LVM will be able to see every "
+"block device."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1992
-msgid "list-partitions"
+#: ../fish/guestfish-actions.pod:2216
+msgid "lvm-remove-all"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:1994
+#: ../fish/guestfish-actions.pod:2218
 #, no-wrap
 msgid ""
-" list-partitions\n"
+" lvm-remove-all\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2000
-msgid ""
-"This does not return logical volumes.  For that you will need to call C<lvs>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:2005
-msgid "ll"
+#: ../fish/guestfish-actions.pod:2226
+msgid "lvm-set-filter"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2007
+#: ../fish/guestfish-actions.pod:2228
 #, no-wrap
 msgid ""
-" ll directory\n"
+" lvm-set-filter 'devices ...'\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2015
-msgid "ln"
+#: ../fish/guestfish-actions.pod:2253
+msgid "lvremove"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2017
+#: ../fish/guestfish-actions.pod:2255
 #, no-wrap
 msgid ""
-" ln target linkname\n"
+" lvremove device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2021
-msgid "ln-f"
+#: ../fish/guestfish-actions.pod:2263
+msgid "lvrename"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2023
+#: ../fish/guestfish-actions.pod:2265
 #, no-wrap
 msgid ""
-" ln-f target linkname\n"
+" lvrename logvol newlogvol\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2028
-msgid "ln-s"
+#: ../fish/guestfish-actions.pod:2269
+msgid "lvresize"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2030
+#: ../fish/guestfish-actions.pod:2271
 #, no-wrap
 msgid ""
-" ln-s target linkname\n"
+" lvresize device mbytes\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2034
-msgid "ln-sf"
+#: ../fish/guestfish-actions.pod:2277
+msgid "lvresize-free"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2036
+#: ../fish/guestfish-actions.pod:2279
 #, no-wrap
 msgid ""
-" ln-sf target linkname\n"
+" lvresize-free lv percent\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2041
-msgid "lremovexattr"
+#: ../fish/guestfish-actions.pod:2287
+msgid "lvs"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2043
+#: ../fish/guestfish-actions.pod:2289
 #, no-wrap
 msgid ""
-" lremovexattr xattr path\n"
+" lvs\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2045
-msgid ""
-"This is the same as C<removexattr>, but if C<path> is a symbolic link, then "
-"it removes an extended attribute of the link itself."
+#: ../fish/guestfish-actions.pod:2297
+msgid "See also L</lvs-full>, L</list-filesystems>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2049
-msgid "ls"
+#: ../fish/guestfish-actions.pod:2299
+msgid "lvs-full"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2051
+#: ../fish/guestfish-actions.pod:2301
 #, no-wrap
 msgid ""
-" ls directory\n"
+" lvs-full\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2057
+# type: =head2
+#: ../fish/guestfish-actions.pod:2306
+msgid "lvuuid"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:2308
+#, no-wrap
 msgid ""
-"This command is mostly useful for interactive sessions.  Programs should "
-"probably use C<readdir> instead."
+" lvuuid device\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2060
-msgid "lsetxattr"
+#: ../fish/guestfish-actions.pod:2312
+msgid "lxattrlist"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2062
+#: ../fish/guestfish-actions.pod:2314
 #, no-wrap
 msgid ""
-" lsetxattr xattr val vallen path\n"
+" lxattrlist path 'names ...'\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2064
+#: ../fish/guestfish-actions.pod:2330
 msgid ""
-"This is the same as C<setxattr>, but if C<path> is a symbolic link, then it "
-"sets an extended attribute of the link itself."
+"This call is intended for programs that want to efficiently list a directory "
+"contents without making many round-trips.  See also L</lstatlist> for a "
+"similarly efficient call for getting standard stats.  Very long directory "
+"listings might cause the protocol message size to be exceeded, causing this "
+"call to fail.  The caller must split up such requests into smaller groups of "
+"names."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2068
-msgid "lstat"
+#: ../fish/guestfish-actions.pod:2338
+msgid "mkdir"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2070
+#: ../fish/guestfish-actions.pod:2340
 #, no-wrap
 msgid ""
-" lstat path\n"
+" mkdir path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2074
+# type: =head2
+#: ../fish/guestfish-actions.pod:2344
+msgid "mkdir-mode"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:2346
+#, no-wrap
 msgid ""
-"This is the same as C<stat> except that if C<path> is a symbolic link, then "
-"the link is stat-ed, not the file it refers to."
+" mkdir-mode path mode\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:2355
+msgid "See also L</mkdir>, L</umask>"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2080
-msgid "lstatlist"
+#: ../fish/guestfish-actions.pod:2357
+msgid "mkdir-p"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2082
+#: ../fish/guestfish-actions.pod:2359
 #, no-wrap
 msgid ""
-" lstatlist path 'names ...'\n"
+" mkdir-p path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2084
-msgid ""
-"This call allows you to perform the C<lstat> operation on multiple files, "
-"where all files are in the directory C<path>.  C<names> is the list of files "
-"from this directory."
+# type: =head2
+#: ../fish/guestfish-actions.pod:2364
+msgid "mkdtemp"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2093
+# type: verbatim
+#: ../fish/guestfish-actions.pod:2366
+#, no-wrap
 msgid ""
-"This call is intended for programs that want to efficiently list a directory "
-"contents without making many round-trips.  See also C<lxattrlist> for a "
-"similarly efficient call for getting extended attributes.  Very long "
-"directory listings might cause the protocol message size to be exceeded, "
-"causing this call to fail.  The caller must split up such requests into "
-"smaller groups of names."
+" mkdtemp template\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2101
-msgid "luks-add-key"
+#: ../fish/guestfish-actions.pod:2387
+msgid "mke2fs-J"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2103
+#: ../fish/guestfish-actions.pod:2389
 #, no-wrap
 msgid ""
-" luks-add-key device keyslot\n"
+" mke2fs-J fstype blocksize device journal\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2110
+#: ../fish/guestfish-actions.pod:2397
+msgid "See also L</mke2journal>."
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:2399
+msgid "mke2fs-JL"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:2401
+#, no-wrap
 msgid ""
-"Note that if C<keyslot> already contains a key, then this command will "
-"fail.  You have to use C<luks-kill-slot> first to remove that key."
+" mke2fs-JL fstype blocksize device label\n"
+"\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2114 ../fish/guestfish-actions.pod:2136
-#: ../fish/guestfish-actions.pod:2149 ../fish/guestfish-actions.pod:2163
-#: ../fish/guestfish-actions.pod:2186 ../fish/guestfish-actions.pod:2196
-msgid ""
-"This command has one or more key or passphrase parameters.  Guestfish will "
-"prompt for these separately."
+#: ../fish/guestfish-actions.pod:2406
+msgid "See also L</mke2journal-L>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2117
-msgid "luks-close"
+#: ../fish/guestfish-actions.pod:2408
+msgid "mke2fs-JU"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2119
+#: ../fish/guestfish-actions.pod:2410
 #, no-wrap
 msgid ""
-" luks-close device\n"
+" mke2fs-JU fstype blocksize device uuid\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2121
-msgid ""
-"This closes a LUKS device that was created earlier by C<luks-open> or C<luks-"
-"open-ro>.  The C<device> parameter must be the name of the LUKS mapping "
-"device (ie. C</dev/mapper/mapname>) and I<not> the name of the underlying "
-"block device."
+#: ../fish/guestfish-actions.pod:2415
+msgid "See also L</mke2journal-U>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2127
-msgid "luks-format"
+#: ../fish/guestfish-actions.pod:2417
+msgid "mke2journal"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2129
+#: ../fish/guestfish-actions.pod:2419
 #, no-wrap
 msgid ""
-" luks-format device keyslot\n"
+" mke2journal blocksize device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2142
-msgid "luks-format-cipher"
+#: ../fish/guestfish-actions.pod:2426
+msgid "mke2journal-L"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2144
+#: ../fish/guestfish-actions.pod:2428
 #, no-wrap
 msgid ""
-" luks-format-cipher device keyslot cipher\n"
+" mke2journal-L blocksize label device\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2146
-msgid ""
-"This command is the same as C<luks-format> but it also allows you to set the "
-"C<cipher> used."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:2155
-msgid "luks-kill-slot"
+#: ../fish/guestfish-actions.pod:2432
+msgid "mke2journal-U"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2157
+#: ../fish/guestfish-actions.pod:2434
 #, no-wrap
 msgid ""
-" luks-kill-slot device keyslot\n"
+" mke2journal-U blocksize uuid device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2166
-msgid "luks-open"
+#: ../fish/guestfish-actions.pod:2438
+msgid "mkfifo"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2168
+#: ../fish/guestfish-actions.pod:2440
 #, no-wrap
 msgid ""
-" luks-open device mapname\n"
+" mkfifo mode path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2182
+#: ../fish/guestfish-actions.pod:2442
 msgid ""
-"If this block device contains LVM volume groups, then calling C<vgscan> "
-"followed by C<vg-activate-all> will make them visible."
+"This call creates a FIFO (named pipe) called C<path> with mode C<mode>.  It "
+"is just a convenient wrapper around L</mknod>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2189
-msgid "luks-open-ro"
+#: ../fish/guestfish-actions.pod:2448
+msgid "mkfs"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2191
+#: ../fish/guestfish-actions.pod:2450
 #, no-wrap
 msgid ""
-" luks-open-ro device mapname\n"
+" mkfs fstype device\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2193
-msgid ""
-"This is the same as C<luks-open> except that a read-only mapping is created."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:2199
-msgid "lvcreate"
+#: ../fish/guestfish-actions.pod:2456
+msgid "mkfs-b"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2201
+#: ../fish/guestfish-actions.pod:2458
 #, no-wrap
 msgid ""
-" lvcreate logvol volgroup mbytes\n"
+" mkfs-b fstype blocksize device\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2460
+msgid ""
+"This call is similar to L</mkfs>, but it allows you to control the block "
+"size of the resulting filesystem.  Supported block sizes depend on the "
+"filesystem type, but typically they are C<1024>, C<2048> or C<4096> only."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:2206
-msgid "lvm-clear-filter"
+#: ../fish/guestfish-actions.pod:2468
+msgid "mkmountpoint"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2208
+#: ../fish/guestfish-actions.pod:2470
 #, no-wrap
 msgid ""
-" lvm-clear-filter\n"
+" mkmountpoint exemptpath\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2210
+#: ../fish/guestfish-actions.pod:2472
 msgid ""
-"This undoes the effect of C<lvm-set-filter>.  LVM will be able to see every "
-"block device."
+"L</mkmountpoint> and L</rmmountpoint> are specialized calls that can be used "
+"to create extra mountpoints before mounting the first filesystem."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2216
-msgid "lvm-remove-all"
+#: ../fish/guestfish-actions.pod:2496
+msgid "mknod"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2218
+#: ../fish/guestfish-actions.pod:2498
 #, no-wrap
 msgid ""
-" lvm-remove-all\n"
+" mknod mode devmajor devminor path\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2508
+msgid ""
+"Note that, just like L<mknod(2)>, the mode must be bitwise OR'd with "
+"S_IFBLK, S_IFCHR, S_IFIFO or S_IFSOCK (otherwise this call just creates a "
+"regular file).  These constants are available in the standard Linux header "
+"files, or you can use L</mknod-b>, L</mknod-c> or L</mkfifo> which are "
+"wrappers around this command which bitwise OR in the appropriate constant "
+"for you."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:2226
-msgid "lvm-set-filter"
+#: ../fish/guestfish-actions.pod:2518
+msgid "mknod-b"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2228
+#: ../fish/guestfish-actions.pod:2520
 #, no-wrap
 msgid ""
-" lvm-set-filter 'devices ...'\n"
+" mknod-b mode devmajor devminor path\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2522
+msgid ""
+"This call creates a block device node called C<path> with mode C<mode> and "
+"device major/minor C<devmajor> and C<devminor>.  It is just a convenient "
+"wrapper around L</mknod>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:2253
-msgid "lvremove"
+#: ../fish/guestfish-actions.pod:2528
+msgid "mknod-c"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2255
+#: ../fish/guestfish-actions.pod:2530
 #, no-wrap
 msgid ""
-" lvremove device\n"
+" mknod-c mode devmajor devminor path\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2532
+msgid ""
+"This call creates a char device node called C<path> with mode C<mode> and "
+"device major/minor C<devmajor> and C<devminor>.  It is just a convenient "
+"wrapper around L</mknod>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:2263
-msgid "lvrename"
+#: ../fish/guestfish-actions.pod:2538
+msgid "mkswap"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2265
+#: ../fish/guestfish-actions.pod:2540
 #, no-wrap
 msgid ""
-" lvrename logvol newlogvol\n"
+" mkswap device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2269
-msgid "lvresize"
+#: ../fish/guestfish-actions.pod:2544
+msgid "mkswap-L"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2271
+#: ../fish/guestfish-actions.pod:2546
 #, no-wrap
 msgid ""
-" lvresize device mbytes\n"
+" mkswap-L label device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2277
-msgid "lvresize-free"
+#: ../fish/guestfish-actions.pod:2554
+msgid "mkswap-U"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2279
+#: ../fish/guestfish-actions.pod:2556
 #, no-wrap
 msgid ""
-" lvresize-free lv percent\n"
+" mkswap-U uuid device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2287
-msgid "lvs"
+#: ../fish/guestfish-actions.pod:2560
+msgid "mkswap-file"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2289
+#: ../fish/guestfish-actions.pod:2562
 #, no-wrap
 msgid ""
-" lvs\n"
+" mkswap-file path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2297
-msgid "See also C<lvs-full>, C<list-filesystems>."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish-actions.pod:2299
-msgid "lvs-full"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish-actions.pod:2301
-#, no-wrap
+#: ../fish/guestfish-actions.pod:2566
 msgid ""
-" lvs-full\n"
-"\n"
+"This command just writes a swap file signature to an existing file.  To "
+"create the file itself, use something like L</fallocate>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2306
-msgid "lvuuid"
+#: ../fish/guestfish-actions.pod:2569
+msgid "modprobe"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2308
+#: ../fish/guestfish-actions.pod:2571
 #, no-wrap
 msgid ""
-" lvuuid device\n"
+" modprobe modulename\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2312
-msgid "lxattrlist"
+#: ../fish/guestfish-actions.pod:2578
+msgid "mount"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2314
+#: ../fish/guestfish-actions.pod:2580
 #, no-wrap
 msgid ""
-" lxattrlist path 'names ...'\n"
+" mount device mountpoint\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2330
+#: ../fish/guestfish-actions.pod:2596
 msgid ""
-"This call is intended for programs that want to efficiently list a directory "
-"contents without making many round-trips.  See also C<lstatlist> for a "
-"similarly efficient call for getting standard stats.  Very long directory "
-"listings might cause the protocol message size to be exceeded, causing this "
-"call to fail.  The caller must split up such requests into smaller groups of "
-"names."
+"B<Important note:> When you use this call, the filesystem options C<sync> "
+"and C<noatime> are set implicitly.  This was originally done because we "
+"thought it would improve reliability, but it turns out that I<-o sync> has a "
+"very large negative performance impact and negligible effect on "
+"reliability.  Therefore we recommend that you avoid using L</mount> in any "
+"code that needs performance, and instead use L</mount-options> (use an empty "
+"string for the first parameter if you don't want any options)."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2338
-msgid "mkdir"
+#: ../fish/guestfish-actions.pod:2606
+msgid "mount-loop"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2340
+#: ../fish/guestfish-actions.pod:2608
 #, no-wrap
 msgid ""
-" mkdir path\n"
+" mount-loop file mountpoint\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2344
-msgid "mkdir-mode"
+#: ../fish/guestfish-actions.pod:2614
+msgid "mount-options"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2346
+#: ../fish/guestfish-actions.pod:2616
 #, no-wrap
 msgid ""
-" mkdir-mode path mode\n"
+" mount-options options device mountpoint\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2355
-msgid "See also C<mkdir>, C<umask>"
+#: ../fish/guestfish-actions.pod:2618
+msgid ""
+"This is the same as the L</mount> command, but it allows you to set the "
+"mount options as for the L<mount(8)> I<-o> flag."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2357
-msgid "mkdir-p"
+#: ../fish/guestfish-actions.pod:2626
+msgid "mount-ro"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2359
+#: ../fish/guestfish-actions.pod:2628
 #, no-wrap
 msgid ""
-" mkdir-p path\n"
+" mount-ro device mountpoint\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2630
+msgid ""
+"This is the same as the L</mount> command, but it mounts the filesystem with "
+"the read-only (I<-o ro>) flag."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:2364
-msgid "mkdtemp"
+#: ../fish/guestfish-actions.pod:2633
+msgid "mount-vfs"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2366
+#: ../fish/guestfish-actions.pod:2635
 #, no-wrap
 msgid ""
-" mkdtemp template\n"
+" mount-vfs options vfstype device mountpoint\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2637
+msgid ""
+"This is the same as the L</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."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:2387
-msgid "mke2fs-J"
+#: ../fish/guestfish-actions.pod:2641
+msgid "mountpoints"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2389
+#: ../fish/guestfish-actions.pod:2643
 #, no-wrap
 msgid ""
-" mke2fs-J fstype blocksize device journal\n"
+" mountpoints\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2397
-msgid "See also C<mke2journal>."
+#: ../fish/guestfish-actions.pod:2645
+msgid ""
+"This call is similar to L</mounts>.  That call returns a list of devices.  "
+"This one returns a hash table (map) of device name to directory where the "
+"device is mounted."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2399
-msgid "mke2fs-JL"
+#: ../fish/guestfish-actions.pod:2649
+msgid "mounts"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2401
+#: ../fish/guestfish-actions.pod:2651
 #, no-wrap
 msgid ""
-" mke2fs-JL fstype blocksize device label\n"
+" mounts\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2406
-msgid "See also C<mke2journal-L>."
+#: ../fish/guestfish-actions.pod:2658
+msgid "See also: L</mountpoints>"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2408
-msgid "mke2fs-JU"
+#: ../fish/guestfish-actions.pod:2660
+msgid "mv"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2410
+#: ../fish/guestfish-actions.pod:2662
 #, no-wrap
 msgid ""
-" mke2fs-JU fstype blocksize device uuid\n"
+" mv src dest\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2415
-msgid "See also C<mke2journal-U>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:2417
-msgid "mke2journal"
+#: ../fish/guestfish-actions.pod:2667
+msgid "ntfs-3g-probe"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2419
+#: ../fish/guestfish-actions.pod:2669
 #, no-wrap
 msgid ""
-" mke2journal blocksize device\n"
+" ntfs-3g-probe true|false device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2426
-msgid "mke2journal-L"
+#: ../fish/guestfish-actions.pod:2683
+msgid "ntfsresize"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2428
+#: ../fish/guestfish-actions.pod:2685
 #, no-wrap
 msgid ""
-" mke2journal-L blocksize label device\n"
+" ntfsresize device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2432
-msgid "mke2journal-U"
+#: ../fish/guestfish-actions.pod:2691
+msgid "ntfsresize-size"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2434
+#: ../fish/guestfish-actions.pod:2693
 #, no-wrap
 msgid ""
-" mke2journal-U blocksize uuid device\n"
+" ntfsresize-size device size\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:2695
+msgid ""
+"This command is the same as L</ntfsresize> except that it allows you to "
+"specify the new size (in bytes) explicitly."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:2438
-msgid "mkfifo"
+#: ../fish/guestfish-actions.pod:2698
+msgid "part-add"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2440
+#: ../fish/guestfish-actions.pod:2700
 #, no-wrap
 msgid ""
-" mkfifo mode path\n"
+" part-add device prlogex startsect endsect\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2442
+#: ../fish/guestfish-actions.pod:2702
 msgid ""
-"This call creates a FIFO (named pipe) called C<path> with mode C<mode>.  It "
-"is just a convenient wrapper around C<mknod>."
+"This command adds a partition to C<device>.  If there is no partition table "
+"on the device, call L</part-init> first."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:2714
+msgid ""
+"Creating a partition which covers the whole disk is not so easy.  Use L</"
+"part-disk> to do that."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2448
-msgid "mkfs"
+#: ../fish/guestfish-actions.pod:2717
+msgid "part-del"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2450
+#: ../fish/guestfish-actions.pod:2719
 #, no-wrap
 msgid ""
-" mkfs fstype device\n"
+" part-del device partnum\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2456
-msgid "mkfs-b"
+#: ../fish/guestfish-actions.pod:2727
+msgid "part-disk"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2458
+#: ../fish/guestfish-actions.pod:2729
 #, no-wrap
 msgid ""
-" mkfs-b fstype blocksize device\n"
+" part-disk device parttype\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2460
+#: ../fish/guestfish-actions.pod:2731
+msgid ""
+"This command is simply a combination of L</part-init> followed by L</part-"
+"add> to create a single primary partition covering the whole disk."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:2735
 msgid ""
-"This call is similar to C<mkfs>, but it allows you to control the block size "
-"of the resulting filesystem.  Supported block sizes depend on the filesystem "
-"type, but typically they are C<1024>, C<2048> or C<4096> only."
+"C<parttype> is the partition table type, usually C<mbr> or C<gpt>, but other "
+"possible values are described in L</part-init>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2468
-msgid "mkmountpoint"
+#: ../fish/guestfish-actions.pod:2741
+msgid "part-get-bootable"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2470
+#: ../fish/guestfish-actions.pod:2743
 #, no-wrap
 msgid ""
-" mkmountpoint exemptpath\n"
+" part-get-bootable device partnum\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2472
-msgid ""
-"C<mkmountpoint> and C<rmmountpoint> are specialized calls that can be used "
-"to create extra mountpoints before mounting the first filesystem."
+#: ../fish/guestfish-actions.pod:2748
+msgid "See also L</part-set-bootable>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2496
-msgid "mknod"
+#: ../fish/guestfish-actions.pod:2750
+msgid "part-get-mbr-id"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2498
+#: ../fish/guestfish-actions.pod:2752
 #, no-wrap
 msgid ""
-" mknod mode devmajor devminor path\n"
+" part-get-mbr-id device partnum\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2508
+#: ../fish/guestfish-actions.pod:2757 ../fish/guestfish-actions.pod:2895
 msgid ""
-"Note that, just like L<mknod(2)>, the mode must be bitwise OR'd with "
-"S_IFBLK, S_IFCHR, S_IFIFO or S_IFSOCK (otherwise this call just creates a "
-"regular file).  These constants are available in the standard Linux header "
-"files, or you can use C<mknod-b>, C<mknod-c> or C<mkfifo> which are wrappers "
-"around this command which bitwise OR in the appropriate constant for you."
+"Note that only MBR (old DOS-style) partitions have type bytes.  You will get "
+"undefined results for other partition table types (see L</part-get-"
+"parttype>)."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2518
-msgid "mknod-b"
+#: ../fish/guestfish-actions.pod:2761
+msgid "part-get-parttype"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2520
+#: ../fish/guestfish-actions.pod:2763
 #, no-wrap
 msgid ""
-" mknod-b mode devmajor devminor path\n"
+" part-get-parttype device\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2522
+#: ../fish/guestfish-actions.pod:2768
 msgid ""
-"This call creates a block device node called C<path> with mode C<mode> and "
-"device major/minor C<devmajor> and C<devminor>.  It is just a convenient "
-"wrapper around C<mknod>."
+"Common return values include: C<msdos> (a DOS/Windows style MBR partition "
+"table), C<gpt> (a GPT/EFI-style partition table).  Other values are "
+"possible, although unusual.  See L</part-init> for a full list."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2528
-msgid "mknod-c"
+#: ../fish/guestfish-actions.pod:2773
+msgid "part-init"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2530
+#: ../fish/guestfish-actions.pod:2775
 #, no-wrap
 msgid ""
-" mknod-c mode devmajor devminor path\n"
+" part-init device parttype\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2532
+#: ../fish/guestfish-actions.pod:2781
 msgid ""
-"This call creates a char device node called C<path> with mode C<mode> and "
-"device major/minor C<devmajor> and C<devminor>.  It is just a convenient "
-"wrapper around C<mknod>."
+"Initially there are no partitions.  Following this, you should call L</part-"
+"add> for each partition required."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2538
-msgid "mkswap"
+#: ../fish/guestfish-actions.pod:2844
+msgid "part-list"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2540
+#: ../fish/guestfish-actions.pod:2846
 #, no-wrap
 msgid ""
-" mkswap device\n"
+" part-list device\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:2544
-msgid "mkswap-L"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish-actions.pod:2546
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish-actions.pod:2861
 msgid ""
-" mkswap-L label device\n"
-"\n"
+"Start of the partition I<in bytes>.  To get sectors you have to divide by "
+"the device's sector size, see L</blockdev-getss>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2554
-msgid "mkswap-U"
+#: ../fish/guestfish-actions.pod:2874
+msgid "part-set-bootable"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2556
+#: ../fish/guestfish-actions.pod:2876
 #, no-wrap
 msgid ""
-" mkswap-U uuid device\n"
+" part-set-bootable device partnum true|false\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2560
-msgid "mkswap-file"
+#: ../fish/guestfish-actions.pod:2885
+msgid "part-set-mbr-id"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2562
+#: ../fish/guestfish-actions.pod:2887
 #, no-wrap
 msgid ""
-" mkswap-file path\n"
+" part-set-mbr-id device partnum idbyte\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2566
-msgid ""
-"This command just writes a swap file signature to an existing file.  To "
-"create the file itself, use something like C<fallocate>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:2569
-msgid "modprobe"
+#: ../fish/guestfish-actions.pod:2899
+msgid "part-set-name"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2571
+#: ../fish/guestfish-actions.pod:2901
 #, no-wrap
 msgid ""
-" modprobe modulename\n"
+" part-set-name device partnum name\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2578
-msgid "mount"
+#: ../fish/guestfish-actions.pod:2909
+msgid "part-to-dev"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2580
+#: ../fish/guestfish-actions.pod:2911
 #, no-wrap
 msgid ""
-" mount device mountpoint\n"
+" part-to-dev partition\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2596
+#: ../fish/guestfish-actions.pod:2917
 msgid ""
-"B<Important note:> When you use this call, the filesystem options C<sync> "
-"and C<noatime> are set implicitly.  This was originally done because we "
-"thought it would improve reliability, but it turns out that I<-o sync> has a "
-"very large negative performance impact and negligible effect on "
-"reliability.  Therefore we recommend that you avoid using C<mount> in any "
-"code that needs performance, and instead use C<mount-options> (use an empty "
-"string for the first parameter if you don't want any options)."
+"The named partition must exist, for example as a string returned from L</"
+"list-partitions>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2606
-msgid "mount-loop"
+#: ../fish/guestfish-actions.pod:2920
+msgid "ping-daemon"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2608
+#: ../fish/guestfish-actions.pod:2922
 #, no-wrap
 msgid ""
-" mount-loop file mountpoint\n"
+" ping-daemon\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2614
-msgid "mount-options"
+#: ../fish/guestfish-actions.pod:2929
+msgid "pread"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2616
+#: ../fish/guestfish-actions.pod:2931
 #, no-wrap
 msgid ""
-" mount-options options device mountpoint\n"
+" pread path count offset\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2618
+#: ../fish/guestfish-actions.pod:2939
+msgid "See also L</pwrite>."
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:2944
+msgid "pvcreate"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:2946
+#, no-wrap
 msgid ""
-"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."
+" pvcreate device\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2626
-msgid "mount-ro"
+#: ../fish/guestfish-actions.pod:2952
+msgid "pvremove"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2628
+#: ../fish/guestfish-actions.pod:2954
 #, no-wrap
 msgid ""
-" mount-ro device mountpoint\n"
+" pvremove device\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2630
-msgid ""
-"This is the same as the C<mount> command, but it mounts the filesystem with "
-"the read-only (I<-o ro>) flag."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:2633
-msgid "mount-vfs"
+#: ../fish/guestfish-actions.pod:2963
+msgid "pvresize"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2635
+#: ../fish/guestfish-actions.pod:2965
 #, no-wrap
 msgid ""
-" mount-vfs options vfstype device mountpoint\n"
+" pvresize device\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2637
-msgid ""
-"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."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:2641
-msgid "mountpoints"
+#: ../fish/guestfish-actions.pod:2970
+msgid "pvresize-size"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2643
+#: ../fish/guestfish-actions.pod:2972
 #, no-wrap
 msgid ""
-" mountpoints\n"
+" pvresize-size device size\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2645
+#: ../fish/guestfish-actions.pod:2974
 msgid ""
-"This call is similar to C<mounts>.  That call returns a list of devices.  "
-"This one returns a hash table (map) of device name to directory where the "
-"device is mounted."
+"This command is the same as L</pvresize> except that it allows you to "
+"specify the new size (in bytes) explicitly."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2649
-msgid "mounts"
+#: ../fish/guestfish-actions.pod:2977
+msgid "pvs"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2651
+#: ../fish/guestfish-actions.pod:2979
 #, no-wrap
 msgid ""
-" mounts\n"
+" pvs\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2658
-msgid "See also: C<mountpoints>"
+#: ../fish/guestfish-actions.pod:2987
+msgid "See also L</pvs-full>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2660
-msgid "mv"
+#: ../fish/guestfish-actions.pod:2989
+msgid "pvs-full"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2662
+#: ../fish/guestfish-actions.pod:2991
 #, no-wrap
 msgid ""
-" mv src dest\n"
+" pvs-full\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2667
-msgid "ntfs-3g-probe"
+#: ../fish/guestfish-actions.pod:2996
+msgid "pvuuid"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2669
+#: ../fish/guestfish-actions.pod:2998
 #, no-wrap
 msgid ""
-" ntfs-3g-probe true|false device\n"
+" pvuuid device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2683
-msgid "ntfsresize"
+#: ../fish/guestfish-actions.pod:3002
+msgid "pwrite"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2685
+#: ../fish/guestfish-actions.pod:3004
 #, no-wrap
 msgid ""
-" ntfsresize device\n"
+" pwrite path content offset\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:3015
+msgid "See also L</pread>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:2691
-msgid "ntfsresize-size"
+#: ../fish/guestfish-actions.pod:3020
+msgid "read-file"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2693
+#: ../fish/guestfish-actions.pod:3022
 #, no-wrap
 msgid ""
-" ntfsresize-size device size\n"
+" read-file path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2695
+#: ../fish/guestfish-actions.pod:3027
 msgid ""
-"This command is the same as C<ntfsresize> except that it allows you to "
-"specify the new size (in bytes) explicitly."
+"Unlike L</cat>, this function can correctly handle files that contain "
+"embedded ASCII NUL characters.  However unlike L</download>, this function "
+"is limited in the total size of file that can be handled."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2698
-msgid "part-add"
+#: ../fish/guestfish-actions.pod:3035
+msgid "read-lines"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2700
+#: ../fish/guestfish-actions.pod:3037
 #, no-wrap
 msgid ""
-" part-add device prlogex startsect endsect\n"
+" read-lines path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2702
+#: ../fish/guestfish-actions.pod:3044
 msgid ""
-"This command adds a partition to C<device>.  If there is no partition table "
-"on the device, call C<part-init> first."
+"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 L</read-file> function which has a more complex "
+"interface."
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:3049
+msgid "readdir"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:3051
+#, no-wrap
+msgid ""
+" readdir dir\n"
+"\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2714
+#: ../fish/guestfish-actions.pod:3103
 msgid ""
-"Creating a partition which covers the whole disk is not so easy.  Use C<part-"
-"disk> to do that."
+"This function is primarily intended for use by programs.  To get a simple "
+"list of names, use L</ls>.  To get a printable directory for human "
+"consumption, use L</ll>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2717
-msgid "part-del"
+#: ../fish/guestfish-actions.pod:3107
+msgid "readlink"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2719
+#: ../fish/guestfish-actions.pod:3109
 #, no-wrap
 msgid ""
-" part-del device partnum\n"
+" readlink path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2727
-msgid "part-disk"
+#: ../fish/guestfish-actions.pod:3113
+msgid "readlinklist"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2729
+#: ../fish/guestfish-actions.pod:3115
 #, no-wrap
 msgid ""
-" part-disk device parttype\n"
+" readlinklist path 'names ...'\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2731
-msgid ""
-"This command is simply a combination of C<part-init> followed by C<part-add> "
-"to create a single primary partition covering the whole disk."
+# type: =head2
+#: ../fish/guestfish-actions.pod:3139
+msgid "realpath"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2735
+# type: verbatim
+#: ../fish/guestfish-actions.pod:3141
+#, no-wrap
 msgid ""
-"C<parttype> is the partition table type, usually C<mbr> or C<gpt>, but other "
-"possible values are described in C<part-init>."
+" realpath path\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2741
-msgid "part-get-bootable"
+#: ../fish/guestfish-actions.pod:3146
+msgid "removexattr"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2743
+#: ../fish/guestfish-actions.pod:3148
 #, no-wrap
 msgid ""
-" part-get-bootable device partnum\n"
+" removexattr xattr path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2748
-msgid "See also C<part-set-bootable>."
+#: ../fish/guestfish-actions.pod:3153
+msgid "See also: L</lremovexattr>, L<attr(5)>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2750
-msgid "part-get-mbr-id"
+#: ../fish/guestfish-actions.pod:3155
+msgid "resize2fs"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2752
+#: ../fish/guestfish-actions.pod:3157
 #, no-wrap
 msgid ""
-" part-get-mbr-id device partnum\n"
+" resize2fs device\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2757 ../fish/guestfish-actions.pod:2895
+#: ../fish/guestfish-actions.pod:3162
 msgid ""
-"Note that only MBR (old DOS-style) partitions have type bytes.  You will get "
-"undefined results for other partition table types (see C<part-get-parttype>)."
+"I<Note:> It is sometimes required that you run L</e2fsck-f> on the C<device> "
+"before calling this command.  For unknown reasons C<resize2fs> sometimes "
+"gives an error about this and sometimes not.  In any case, it is always safe "
+"to call L</e2fsck-f> before calling this function."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2761
-msgid "part-get-parttype"
+#: ../fish/guestfish-actions.pod:3168
+msgid "resize2fs-size"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2763
+#: ../fish/guestfish-actions.pod:3170
 #, no-wrap
 msgid ""
-" part-get-parttype device\n"
+" resize2fs-size device size\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2768
+#: ../fish/guestfish-actions.pod:3172
 msgid ""
-"Common return values include: C<msdos> (a DOS/Windows style MBR partition "
-"table), C<gpt> (a GPT/EFI-style partition table).  Other values are "
-"possible, although unusual.  See C<part-init> for a full list."
+"This command is the same as L</resize2fs> except that it allows you to "
+"specify the new size (in bytes) explicitly."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2773
-msgid "part-init"
+#: ../fish/guestfish-actions.pod:3175
+msgid "rm"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2775
+#: ../fish/guestfish-actions.pod:3177
 #, no-wrap
 msgid ""
-" part-init device parttype\n"
+" rm path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2781
-msgid ""
-"Initially there are no partitions.  Following this, you should call C<part-"
-"add> for each partition required."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:2844
-msgid "part-list"
+#: ../fish/guestfish-actions.pod:3181
+msgid "rm-rf"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2846
+#: ../fish/guestfish-actions.pod:3183
 #, no-wrap
 msgid ""
-" part-list device\n"
+" rm-rf path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:2861
+# type: =head2
+#: ../fish/guestfish-actions.pod:3189
+msgid "rmdir"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:3191
+#, no-wrap
 msgid ""
-"Start of the partition I<in bytes>.  To get sectors you have to divide by "
-"the device's sector size, see C<blockdev-getss>."
+" rmdir path\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2874
-msgid "part-set-bootable"
+#: ../fish/guestfish-actions.pod:3195
+msgid "rmmountpoint"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2876
+#: ../fish/guestfish-actions.pod:3197
 #, no-wrap
 msgid ""
-" part-set-bootable device partnum true|false\n"
+" rmmountpoint exemptpath\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:3199
+msgid ""
+"This calls removes a mountpoint that was previously created with L</"
+"mkmountpoint>.  See L</mkmountpoint> for full details."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:2885
-msgid "part-set-mbr-id"
+#: ../fish/guestfish-actions.pod:3203
+msgid "scrub-device"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2887
+#: ../fish/guestfish-actions.pod:3205
 #, no-wrap
 msgid ""
-" part-set-mbr-id device partnum idbyte\n"
+" scrub-device device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2899
-msgid "part-set-name"
+#: ../fish/guestfish-actions.pod:3216
+msgid "scrub-file"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2901
+#: ../fish/guestfish-actions.pod:3218
 #, no-wrap
 msgid ""
-" part-set-name device partnum name\n"
+" scrub-file file\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2909
-msgid "part-to-dev"
+#: ../fish/guestfish-actions.pod:3228
+msgid "scrub-freespace"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2911
+#: ../fish/guestfish-actions.pod:3230
 #, no-wrap
 msgid ""
-" part-to-dev partition\n"
+" scrub-freespace dir\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2917
+#: ../fish/guestfish-actions.pod:3232
 msgid ""
-"The named partition must exist, for example as a string returned from C<list-"
-"partitions>."
+"This command creates the directory C<dir> and then fills it with files until "
+"the filesystem is full, and scrubs the files as for L</scrub-file>, and "
+"deletes them.  The intention is to scrub any free space on the partition "
+"containing C<dir>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2920
-msgid "ping-daemon"
+#: ../fish/guestfish-actions.pod:3241
+msgid "set-append | append"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2922
+#: ../fish/guestfish-actions.pod:3243
 #, no-wrap
 msgid ""
-" ping-daemon\n"
+" set-append append\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2929
-msgid "pread"
+#: ../fish/guestfish-actions.pod:3254
+msgid "set-autosync | autosync"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2931
+#: ../fish/guestfish-actions.pod:3256
 #, no-wrap
 msgid ""
-" pread path count offset\n"
+" set-autosync true|false\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2939
-msgid "See also C<pwrite>."
+#: ../fish/guestfish-actions.pod:3258
+msgid ""
+"If C<autosync> is true, this enables autosync.  Libguestfs will make a best "
+"effort attempt to run L</umount-all> followed by L</sync> when the handle is "
+"closed (also if the program exits without closing handles)."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2944
-msgid "pvcreate"
+#: ../fish/guestfish-actions.pod:3266
+msgid "set-direct | direct"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2946
+#: ../fish/guestfish-actions.pod:3268
 #, no-wrap
 msgid ""
-" pvcreate device\n"
+" set-direct true|false\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:3274
+msgid ""
+"One consequence of this is that log messages aren't caught by the library "
+"and handled by L</set-log-message-callback>, but go straight to stdout."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:2952
-msgid "pvremove"
+#: ../fish/guestfish-actions.pod:3283
+msgid "set-e2label"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2954
+#: ../fish/guestfish-actions.pod:3285
 #, no-wrap
 msgid ""
-" pvremove device\n"
+" set-e2label device label\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:3291
+msgid ""
+"You can use either L</tune2fs-l> or L</get-e2label> to return the existing "
+"label on a filesystem."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:2963
-msgid "pvresize"
+#: ../fish/guestfish-actions.pod:3294
+msgid "set-e2uuid"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2965
+#: ../fish/guestfish-actions.pod:3296
 #, no-wrap
 msgid ""
-" pvresize device\n"
+" set-e2uuid device uuid\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:3303
+msgid ""
+"You can use either L</tune2fs-l> or L</get-e2uuid> to return the existing "
+"UUID of a filesystem."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:2970
-msgid "pvresize-size"
+#: ../fish/guestfish-actions.pod:3306
+msgid "set-memsize | memsize"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2972
+#: ../fish/guestfish-actions.pod:3308
 #, no-wrap
 msgid ""
-" pvresize-size device size\n"
+" set-memsize memsize\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2974
+#: ../fish/guestfish-actions.pod:3310
 msgid ""
-"This command is the same as C<pvresize> except that it allows you to specify "
-"the new size (in bytes) explicitly."
+"This sets the memory size in megabytes allocated to the qemu subprocess.  "
+"This only has any effect if called before L</launch>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2977
-msgid "pvs"
+#: ../fish/guestfish-actions.pod:3321
+msgid "set-network | network"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2979
+#: ../fish/guestfish-actions.pod:3323
 #, no-wrap
 msgid ""
-" pvs\n"
+" set-network true|false\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:2987
-msgid "See also C<pvs-full>."
+#: ../fish/guestfish-actions.pod:3331
+msgid ""
+"You must call this before calling L</launch>, otherwise it has no effect."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2989
-msgid "pvs-full"
+#: ../fish/guestfish-actions.pod:3334
+msgid "set-path | path"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2991
+#: ../fish/guestfish-actions.pod:3336
 #, no-wrap
 msgid ""
-" pvs-full\n"
+" set-path searchpath\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:2996
-msgid "pvuuid"
+#: ../fish/guestfish-actions.pod:3345
+msgid "set-qemu | qemu"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:2998
+#: ../fish/guestfish-actions.pod:3347
 #, no-wrap
 msgid ""
-" pvuuid device\n"
+" set-qemu qemu\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3002
-msgid "pwrite"
+#: ../fish/guestfish-actions.pod:3367
+msgid "set-recovery-proc | recovery-proc"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3004
+#: ../fish/guestfish-actions.pod:3369
 #, no-wrap
 msgid ""
-" pwrite path content offset\n"
+" set-recovery-proc true|false\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3015
-msgid "See also C<pread>."
+#: ../fish/guestfish-actions.pod:3371
+msgid ""
+"If this is called with the parameter C<false> then L</launch> does not "
+"create a recovery process.  The purpose of the recovery process is to stop "
+"runaway qemu processes in the case where the main program aborts abruptly."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:3376
+msgid ""
+"This only has any effect if called before L</launch>, and the default is "
+"true."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3020
-msgid "read-file"
+#: ../fish/guestfish-actions.pod:3385
+msgid "set-selinux | selinux"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3022
+#: ../fish/guestfish-actions.pod:3387
 #, no-wrap
 msgid ""
-" read-file path\n"
+" set-selinux true|false\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3027
-msgid ""
-"Unlike C<cat>, this function can correctly handle files that contain "
-"embedded ASCII NUL characters.  However unlike C<download>, this function is "
-"limited in the total size of file that can be handled."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3035
-msgid "read-lines"
+#: ../fish/guestfish-actions.pod:3398
+msgid "set-trace | trace"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3037
+#: ../fish/guestfish-actions.pod:3400
 #, no-wrap
 msgid ""
-" read-lines path\n"
+" set-trace true|false\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3044
-msgid ""
-"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> function which has a more complex "
-"interface."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3049
-msgid "readdir"
+#: ../fish/guestfish-actions.pod:3416
+msgid "set-verbose | verbose"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3051
+#: ../fish/guestfish-actions.pod:3418
 #, no-wrap
 msgid ""
-" readdir dir\n"
+" set-verbose true|false\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3103
-msgid ""
-"This function is primarily intended for use by programs.  To get a simple "
-"list of names, use C<ls>.  To get a printable directory for human "
-"consumption, use C<ll>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3107
-msgid "readlink"
+#: ../fish/guestfish-actions.pod:3425
+msgid "setcon"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3109
+#: ../fish/guestfish-actions.pod:3427
 #, no-wrap
 msgid ""
-" readlink path\n"
+" setcon context\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3113
-msgid "readlinklist"
+#: ../fish/guestfish-actions.pod:3434
+msgid "setxattr"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3115
+#: ../fish/guestfish-actions.pod:3436
 #, no-wrap
 msgid ""
-" readlinklist path 'names ...'\n"
+" setxattr xattr val vallen path\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:3442
+msgid "See also: L</lsetxattr>, L<attr(5)>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:3139
-msgid "realpath"
+#: ../fish/guestfish-actions.pod:3444
+msgid "sfdisk"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3141
+#: ../fish/guestfish-actions.pod:3446
 #, no-wrap
 msgid ""
-" realpath path\n"
+" sfdisk device cyls heads sectors 'lines ...'\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:3468
+msgid "See also: L</sfdisk-l>, L</sfdisk-N>, L</part-init>"
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:3146
-msgid "removexattr"
+#: ../fish/guestfish-actions.pod:3474
+msgid "sfdiskM"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3148
+#: ../fish/guestfish-actions.pod:3476
 #, no-wrap
 msgid ""
-" removexattr xattr path\n"
+" sfdiskM device 'lines ...'\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3153
-msgid "See also: C<lremovexattr>, L<attr(5)>."
+#: ../fish/guestfish-actions.pod:3478
+msgid ""
+"This is a simplified interface to the L</sfdisk> command, where partition "
+"sizes are specified in megabytes only (rounded to the nearest cylinder) and "
+"you don't need to specify the cyls, heads and sectors parameters which were "
+"rarely if ever used anyway."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:3484
+msgid "See also: L</sfdisk>, the L<sfdisk(8)> manpage and L</part-disk>"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3155
-msgid "resize2fs"
+#: ../fish/guestfish-actions.pod:3490
+msgid "sfdisk-N"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3157
+#: ../fish/guestfish-actions.pod:3492
 #, no-wrap
 msgid ""
-" resize2fs device\n"
+" sfdisk-N device partnum cyls heads sectors line\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3162
+#: ../fish/guestfish-actions.pod:3497
 msgid ""
-"I<Note:> It is sometimes required that you run C<e2fsck-f> on the C<device> "
-"before calling this command.  For unknown reasons C<resize2fs> sometimes "
-"gives an error about this and sometimes not.  In any case, it is always safe "
-"to call C<e2fsck-f> before calling this function."
+"For other parameters, see L</sfdisk>.  You should usually pass C<0> for the "
+"cyls/heads/sectors parameters."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:3500
+msgid "See also: L</part-add>"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3168
-msgid "resize2fs-size"
+#: ../fish/guestfish-actions.pod:3505
+msgid "sfdisk-disk-geometry"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3170
+#: ../fish/guestfish-actions.pod:3507
 #, no-wrap
 msgid ""
-" resize2fs-size device size\n"
+" sfdisk-disk-geometry device\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3172
+#: ../fish/guestfish-actions.pod:3509
 msgid ""
-"This command is the same as C<resize2fs> except that it allows you to "
-"specify the new size (in bytes) explicitly."
+"This displays the disk geometry of C<device> read from the partition table.  "
+"Especially in the case where the underlying block device has been resized, "
+"this can be different from the kernel's idea of the geometry (see L</sfdisk-"
+"kernel-geometry>)."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3175
-msgid "rm"
+#: ../fish/guestfish-actions.pod:3517
+msgid "sfdisk-kernel-geometry"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3177
+#: ../fish/guestfish-actions.pod:3519
 #, no-wrap
 msgid ""
-" rm path\n"
+" sfdisk-kernel-geometry device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3181
-msgid "rm-rf"
+#: ../fish/guestfish-actions.pod:3526
+msgid "sfdisk-l"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3183
+#: ../fish/guestfish-actions.pod:3528
 #, no-wrap
 msgid ""
-" rm-rf path\n"
+" sfdisk-l device\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:3534
+msgid "See also: L</part-list>"
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:3189
-msgid "rmdir"
+#: ../fish/guestfish-actions.pod:3536
+msgid "sh"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3191
+#: ../fish/guestfish-actions.pod:3538
 #, no-wrap
 msgid ""
-" rmdir path\n"
+" sh command\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:3543
+msgid "This is like L</command>, but passes the command to:"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:3551
+msgid "All the provisos about L</command> apply to this call."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:3195
-msgid "rmmountpoint"
+#: ../fish/guestfish-actions.pod:3553
+msgid "sh-lines"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3197
+#: ../fish/guestfish-actions.pod:3555
 #, no-wrap
 msgid ""
-" rmmountpoint exemptpath\n"
+" sh-lines command\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3199
-msgid ""
-"This calls removes a mountpoint that was previously created with "
-"C<mkmountpoint>.  See C<mkmountpoint> for full details."
+#: ../fish/guestfish-actions.pod:3557
+msgid "This is the same as L</sh>, but splits the result into a list of lines."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:3560
+msgid "See also: L</command-lines>"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3203
-msgid "scrub-device"
+#: ../fish/guestfish-actions.pod:3562
+msgid "sleep"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3205
+#: ../fish/guestfish-actions.pod:3564
 #, no-wrap
 msgid ""
-" scrub-device device\n"
+" sleep secs\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3216
-msgid "scrub-file"
+#: ../fish/guestfish-actions.pod:3568
+msgid "stat"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3218
+#: ../fish/guestfish-actions.pod:3570
 #, no-wrap
 msgid ""
-" scrub-file file\n"
+" stat path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3228
-msgid "scrub-freespace"
+#: ../fish/guestfish-actions.pod:3576
+msgid "statvfs"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3230
+#: ../fish/guestfish-actions.pod:3578
 #, no-wrap
 msgid ""
-" scrub-freespace dir\n"
+" statvfs path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3232
-msgid ""
-"This command creates the directory C<dir> and then fills it with files until "
-"the filesystem is full, and scrubs the files as for C<scrub-file>, and "
-"deletes them.  The intention is to scrub any free space on the partition "
-"containing C<dir>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3241
-msgid "set-append | append"
+#: ../fish/guestfish-actions.pod:3586
+msgid "strings"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3243
+#: ../fish/guestfish-actions.pod:3588
 #, no-wrap
 msgid ""
-" set-append append\n"
+" strings path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3254
-msgid "set-autosync | autosync"
+#: ../fish/guestfish-actions.pod:3596
+msgid "strings-e"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3256
+#: ../fish/guestfish-actions.pod:3598
 #, no-wrap
 msgid ""
-" set-autosync true|false\n"
+" strings-e encoding path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3258
+#: ../fish/guestfish-actions.pod:3600
 msgid ""
-"If C<autosync> is true, this enables autosync.  Libguestfs will make a best "
-"effort attempt to run C<umount-all> followed by C<sync> when the handle is "
-"closed (also if the program exits without closing handles)."
+"This is like the L</strings> command, but allows you to specify the encoding "
+"of strings that are looked for in the source file C<path>."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:3610
+msgid ""
+"Single 7-bit-byte characters like ASCII and the ASCII-compatible parts of "
+"ISO-8859-X (this is what L</strings> uses)."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3266
-msgid "set-direct | direct"
+#: ../fish/guestfish-actions.pod:3642
+msgid "swapoff-device"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3268
+#: ../fish/guestfish-actions.pod:3644
 #, no-wrap
 msgid ""
-" set-direct true|false\n"
+" swapoff-device device\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3274
+#: ../fish/guestfish-actions.pod:3646
 msgid ""
-"One consequence of this is that log messages aren't caught by the library "
-"and handled by C<set-log-message-callback>, but go straight to stdout."
+"This command disables the libguestfs appliance swap device or partition "
+"named C<device>.  See L</swapon-device>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3283
-msgid "set-e2label"
+#: ../fish/guestfish-actions.pod:3650
+msgid "swapoff-file"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3285
+#: ../fish/guestfish-actions.pod:3652
 #, no-wrap
 msgid ""
-" set-e2label device label\n"
+" swapoff-file file\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3291
-msgid ""
-"You can use either C<tune2fs-l> or C<get-e2label> to return the existing "
-"label on a filesystem."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3294
-msgid "set-e2uuid"
+#: ../fish/guestfish-actions.pod:3656
+msgid "swapoff-label"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3296
+#: ../fish/guestfish-actions.pod:3658
 #, no-wrap
 msgid ""
-" set-e2uuid device uuid\n"
+" swapoff-label label\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3303
+# type: =head2
+#: ../fish/guestfish-actions.pod:3663
+msgid "swapoff-uuid"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:3665
+#, no-wrap
 msgid ""
-"You can use either C<tune2fs-l> or C<get-e2uuid> to return the existing UUID "
-"of a filesystem."
+" swapoff-uuid uuid\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3306
-msgid "set-memsize | memsize"
+#: ../fish/guestfish-actions.pod:3670
+msgid "swapon-device"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3308
+#: ../fish/guestfish-actions.pod:3672
 #, no-wrap
 msgid ""
-" set-memsize memsize\n"
+" swapon-device device\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3310
+#: ../fish/guestfish-actions.pod:3674
 msgid ""
-"This sets the memory size in megabytes allocated to the qemu subprocess.  "
-"This only has any effect if called before C<launch>."
+"This command enables the libguestfs appliance to use the swap device or "
+"partition named C<device>.  The increased memory is made available for all "
+"commands, for example those run using L</command> or L</sh>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3321
-msgid "set-network | network"
+#: ../fish/guestfish-actions.pod:3686
+msgid "swapon-file"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3323
+#: ../fish/guestfish-actions.pod:3688
 #, no-wrap
 msgid ""
-" set-network true|false\n"
+" swapon-file file\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3331
+#: ../fish/guestfish-actions.pod:3690
 msgid ""
-"You must call this before calling C<launch>, otherwise it has no effect."
+"This command enables swap to a file.  See L</swapon-device> for other notes."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3334
-msgid "set-path | path"
+#: ../fish/guestfish-actions.pod:3693
+msgid "swapon-label"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3336
+#: ../fish/guestfish-actions.pod:3695
 #, no-wrap
 msgid ""
-" set-path searchpath\n"
+" swapon-label label\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:3345
-msgid "set-qemu | qemu"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish-actions.pod:3347
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish-actions.pod:3697
 msgid ""
-" set-qemu qemu\n"
-"\n"
+"This command enables swap to a labeled swap partition.  See L</swapon-"
+"device> for other notes."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3367
-msgid "set-recovery-proc | recovery-proc"
+#: ../fish/guestfish-actions.pod:3700
+msgid "swapon-uuid"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3369
+#: ../fish/guestfish-actions.pod:3702
 #, no-wrap
 msgid ""
-" set-recovery-proc true|false\n"
+" swapon-uuid uuid\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3371
-msgid ""
-"If this is called with the parameter C<false> then C<launch> does not create "
-"a recovery process.  The purpose of the recovery process is to stop runaway "
-"qemu processes in the case where the main program aborts abruptly."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:3376
+#: ../fish/guestfish-actions.pod:3704
 msgid ""
-"This only has any effect if called before C<launch>, and the default is true."
+"This command enables swap to a swap partition with the given UUID.  See L</"
+"swapon-device> for other notes."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3385
-msgid "set-selinux | selinux"
+#: ../fish/guestfish-actions.pod:3707
+msgid "sync"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3387
+#: ../fish/guestfish-actions.pod:3709
 #, no-wrap
 msgid ""
-" set-selinux true|false\n"
+" sync\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3398
-msgid "set-trace | trace"
+#: ../fish/guestfish-actions.pod:3717
+msgid "tail"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3400
+#: ../fish/guestfish-actions.pod:3719
 #, no-wrap
 msgid ""
-" set-trace true|false\n"
+" tail path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3416
-msgid "set-verbose | verbose"
+#: ../fish/guestfish-actions.pod:3727
+msgid "tail-n"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3418
+#: ../fish/guestfish-actions.pod:3729
 #, no-wrap
 msgid ""
-" set-verbose true|false\n"
+" tail-n nrlines path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3425
-msgid "setcon"
+#: ../fish/guestfish-actions.pod:3742
+msgid "tar-in"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3427
+#: ../fish/guestfish-actions.pod:3744
 #, no-wrap
 msgid ""
-" setcon context\n"
+" tar-in (tarfile|-) directory\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:3749
+msgid "To upload a compressed tarball, use L</tgz-in> or L</txz-in>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:3434
-msgid "setxattr"
+#: ../fish/guestfish-actions.pod:3754
+msgid "tar-out"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3436
+#: ../fish/guestfish-actions.pod:3756
 #, no-wrap
 msgid ""
-" setxattr xattr val vallen path\n"
+" tar-out directory (tarfile|-)\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3442
-msgid "See also: C<lsetxattr>, L<attr(5)>."
+#: ../fish/guestfish-actions.pod:3761
+msgid "To download a compressed tarball, use L</tgz-out> or L</txz-out>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3444
-msgid "sfdisk"
+#: ../fish/guestfish-actions.pod:3766
+msgid "tgz-in"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3446
+#: ../fish/guestfish-actions.pod:3768
 #, no-wrap
 msgid ""
-" sfdisk device cyls heads sectors 'lines ...'\n"
+" tgz-in (tarball|-) directory\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3468
-msgid "See also: C<sfdisk-l>, C<sfdisk-N>, C<part-init>"
+#: ../fish/guestfish-actions.pod:3773
+msgid "To upload an uncompressed tarball, use L</tar-in>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3474
-msgid "sfdiskM"
+#: ../fish/guestfish-actions.pod:3777
+msgid "tgz-out"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3476
+#: ../fish/guestfish-actions.pod:3779
 #, no-wrap
 msgid ""
-" sfdiskM device 'lines ...'\n"
+" tgz-out directory (tarball|-)\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3478
-msgid ""
-"This is a simplified interface to the C<sfdisk> command, where partition "
-"sizes are specified in megabytes only (rounded to the nearest cylinder) and "
-"you don't need to specify the cyls, heads and sectors parameters which were "
-"rarely if ever used anyway."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:3484
-msgid "See also: C<sfdisk>, the L<sfdisk(8)> manpage and C<part-disk>"
+#: ../fish/guestfish-actions.pod:3784
+msgid "To download an uncompressed tarball, use L</tar-out>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3490
-msgid "sfdisk-N"
+#: ../fish/guestfish-actions.pod:3788
+msgid "touch"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3492
+#: ../fish/guestfish-actions.pod:3790
 #, no-wrap
 msgid ""
-" sfdisk-N device partnum cyls heads sectors line\n"
+" touch path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3497
-msgid ""
-"For other parameters, see C<sfdisk>.  You should usually pass C<0> for the "
-"cyls/heads/sectors parameters."
+# type: =head2
+#: ../fish/guestfish-actions.pod:3799
+msgid "truncate"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3500
-msgid "See also: C<part-add>"
+# type: verbatim
+#: ../fish/guestfish-actions.pod:3801
+#, no-wrap
+msgid ""
+" truncate path\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3505
-msgid "sfdisk-disk-geometry"
+#: ../fish/guestfish-actions.pod:3806
+msgid "truncate-size"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3507
+#: ../fish/guestfish-actions.pod:3808
 #, no-wrap
 msgid ""
-" sfdisk-disk-geometry device\n"
+" truncate-size path size\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3509
+#: ../fish/guestfish-actions.pod:3813
 msgid ""
-"This displays the disk geometry of C<device> read from the partition table.  "
-"Especially in the case where the underlying block device has been resized, "
-"this can be different from the kernel's idea of the geometry (see C<sfdisk-"
-"kernel-geometry>)."
+"If the current file size is less than C<size> then the file is extended to "
+"the required size with zero bytes.  This creates a sparse file (ie. disk "
+"blocks are not allocated for the file until you write to it).  To create a "
+"non-sparse file of zeroes, use L</fallocate64> instead."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3517
-msgid "sfdisk-kernel-geometry"
+#: ../fish/guestfish-actions.pod:3819
+msgid "tune2fs-l"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3519
+#: ../fish/guestfish-actions.pod:3821
 #, no-wrap
 msgid ""
-" sfdisk-kernel-geometry device\n"
+" tune2fs-l device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3526
-msgid "sfdisk-l"
+#: ../fish/guestfish-actions.pod:3831
+msgid "txz-in"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3528
+#: ../fish/guestfish-actions.pod:3833
 #, no-wrap
 msgid ""
-" sfdisk-l device\n"
+" txz-in (tarball|-) directory\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3534
-msgid "See also: C<part-list>"
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3536
-msgid "sh"
+#: ../fish/guestfish-actions.pod:3840
+msgid "txz-out"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3538
+#: ../fish/guestfish-actions.pod:3842
 #, no-wrap
 msgid ""
-" sh command\n"
+" txz-out directory (tarball|-)\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3543
-msgid "This is like C<command>, but passes the command to:"
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:3551
-msgid "All the provisos about C<command> apply to this call."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3553
-msgid "sh-lines"
+#: ../fish/guestfish-actions.pod:3849
+msgid "umask"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3555
+#: ../fish/guestfish-actions.pod:3851
 #, no-wrap
 msgid ""
-" sh-lines command\n"
+" umask mask\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3557
-msgid "This is the same as C<sh>, but splits the result into a list of lines."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:3560
-msgid "See also: C<command-lines>"
+#: ../fish/guestfish-actions.pod:3865
+msgid "See also L</get-umask>, L<umask(2)>, L</mknod>, L</mkdir>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3562
-msgid "sleep"
+#: ../fish/guestfish-actions.pod:3870
+msgid "umount | unmount"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3564
+#: ../fish/guestfish-actions.pod:3872
 #, no-wrap
 msgid ""
-" sleep secs\n"
+" umount pathordevice\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3568
-msgid "stat"
+#: ../fish/guestfish-actions.pod:3878
+msgid "umount-all | unmount-all"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3570
+#: ../fish/guestfish-actions.pod:3880
 #, no-wrap
 msgid ""
-" stat path\n"
+" umount-all\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3576
-msgid "statvfs"
+#: ../fish/guestfish-actions.pod:3886
+msgid "upload"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3578
+#: ../fish/guestfish-actions.pod:3888
 #, no-wrap
 msgid ""
-" statvfs path\n"
+" upload (filename|-) remotefilename\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:3895
+msgid "See also L</download>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:3586
-msgid "strings"
+#: ../fish/guestfish-actions.pod:3899
+msgid "utimens"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3588
+#: ../fish/guestfish-actions.pod:3901
 #, no-wrap
 msgid ""
-" strings path\n"
+" utimens path atsecs atnsecs mtsecs mtnsecs\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3596
-msgid "strings-e"
+#: ../fish/guestfish-actions.pod:3920
+msgid "version"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3598
+#: ../fish/guestfish-actions.pod:3922
 #, no-wrap
 msgid ""
-" strings-e encoding path\n"
+" version\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3600
-msgid ""
-"This is like the C<strings> command, but allows you to specify the encoding "
-"of strings that are looked for in the source file C<path>."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:3610
+#: ../fish/guestfish-actions.pod:3949
 msgid ""
-"Single 7-bit-byte characters like ASCII and the ASCII-compatible parts of "
-"ISO-8859-X (this is what C<strings> uses)."
+"I<Note:> Don't use this call to test for availability of features.  In "
+"enterprise distributions we backport features from later versions into "
+"earlier versions, making this an unreliable way to test for features.  Use "
+"L</available> instead."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3642
-msgid "swapoff-device"
+#: ../fish/guestfish-actions.pod:3955
+msgid "vfs-label"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3644
+#: ../fish/guestfish-actions.pod:3957
 #, no-wrap
 msgid ""
-" swapoff-device device\n"
+" vfs-label device\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3646
-msgid ""
-"This command disables the libguestfs appliance swap device or partition "
-"named C<device>.  See C<swapon-device>."
+#: ../fish/guestfish-actions.pod:3964
+msgid "To find a filesystem from the label, use L</findfs-label>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3650
-msgid "swapoff-file"
+#: ../fish/guestfish-actions.pod:3966
+msgid "vfs-type"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3652
+#: ../fish/guestfish-actions.pod:3968
 #, no-wrap
 msgid ""
-" swapoff-file file\n"
+" vfs-type device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3656
-msgid "swapoff-label"
+#: ../fish/guestfish-actions.pod:3978
+msgid "vfs-uuid"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3658
+#: ../fish/guestfish-actions.pod:3980
 #, no-wrap
 msgid ""
-" swapoff-label label\n"
+" vfs-uuid device\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:3987
+msgid "To find a filesystem from the UUID, use L</findfs-uuid>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:3663
-msgid "swapoff-uuid"
+#: ../fish/guestfish-actions.pod:3989
+msgid "vg-activate"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3665
+#: ../fish/guestfish-actions.pod:3991
 #, no-wrap
 msgid ""
-" swapoff-uuid uuid\n"
+" vg-activate true|false 'volgroups ...'\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3670
-msgid "swapon-device"
+#: ../fish/guestfish-actions.pod:4004
+msgid "vg-activate-all"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3672
+#: ../fish/guestfish-actions.pod:4006
 #, no-wrap
 msgid ""
-" swapon-device device\n"
+" vg-activate-all true|false\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3674
-msgid ""
-"This command enables the libguestfs appliance to use the swap device or "
-"partition named C<device>.  The increased memory is made available for all "
-"commands, for example those run using C<command> or C<sh>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3686
-msgid "swapon-file"
+#: ../fish/guestfish-actions.pod:4016
+msgid "vgcreate"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3688
+#: ../fish/guestfish-actions.pod:4018
 #, no-wrap
 msgid ""
-" swapon-file file\n"
+" vgcreate volgroup 'physvols ...'\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3690
-msgid ""
-"This command enables swap to a file.  See C<swapon-device> for other notes."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3693
-msgid "swapon-label"
+#: ../fish/guestfish-actions.pod:4023
+msgid "vglvuuids"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3695
+#: ../fish/guestfish-actions.pod:4025
 #, no-wrap
 msgid ""
-" swapon-label label\n"
+" vglvuuids vgname\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3697
+#: ../fish/guestfish-actions.pod:4030
 msgid ""
-"This command enables swap to a labeled swap partition.  See C<swapon-device> "
-"for other notes."
+"You can use this along with L</lvs> and L</lvuuid> calls to associate "
+"logical volumes and volume groups."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:4033
+msgid "See also L</vgpvuuids>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3700
-msgid "swapon-uuid"
+#: ../fish/guestfish-actions.pod:4035
+msgid "vgpvuuids"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3702
+#: ../fish/guestfish-actions.pod:4037
 #, no-wrap
 msgid ""
-" swapon-uuid uuid\n"
+" vgpvuuids vgname\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3704
+#: ../fish/guestfish-actions.pod:4042
 msgid ""
-"This command enables swap to a swap partition with the given UUID.  See "
-"C<swapon-device> for other notes."
+"You can use this along with L</pvs> and L</pvuuid> calls to associate "
+"physical volumes and volume groups."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:4045
+msgid "See also L</vglvuuids>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3707
-msgid "sync"
+#: ../fish/guestfish-actions.pod:4047
+msgid "vgremove"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3709
+#: ../fish/guestfish-actions.pod:4049
 #, no-wrap
 msgid ""
-" sync\n"
+" vgremove vgname\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3717
-msgid "tail"
+#: ../fish/guestfish-actions.pod:4056
+msgid "vgrename"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3719
+#: ../fish/guestfish-actions.pod:4058
 #, no-wrap
 msgid ""
-" tail path\n"
+" vgrename volgroup newvolgroup\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3727
-msgid "tail-n"
+#: ../fish/guestfish-actions.pod:4062
+msgid "vgs"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3729
+#: ../fish/guestfish-actions.pod:4064
 #, no-wrap
 msgid ""
-" tail-n nrlines path\n"
+" vgs\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:4072
+msgid "See also L</vgs-full>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:3742
-msgid "tar-in"
+#: ../fish/guestfish-actions.pod:4074
+msgid "vgs-full"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3744
+#: ../fish/guestfish-actions.pod:4076
 #, no-wrap
 msgid ""
-" tar-in (tarfile|-) directory\n"
+" vgs-full\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3749
-msgid "To upload a compressed tarball, use C<tgz-in> or C<txz-in>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3754
-msgid "tar-out"
+#: ../fish/guestfish-actions.pod:4081
+msgid "vgscan"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3756
+#: ../fish/guestfish-actions.pod:4083
 #, no-wrap
 msgid ""
-" tar-out directory (tarfile|-)\n"
+" vgscan\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3761
-msgid "To download a compressed tarball, use C<tgz-out> or C<txz-out>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3766
-msgid "tgz-in"
+#: ../fish/guestfish-actions.pod:4088
+msgid "vguuid"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3768
+#: ../fish/guestfish-actions.pod:4090
 #, no-wrap
 msgid ""
-" tgz-in (tarball|-) directory\n"
+" vguuid vgname\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3773
-msgid "To upload an uncompressed tarball, use C<tar-in>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3777
-msgid "tgz-out"
+#: ../fish/guestfish-actions.pod:4094
+msgid "wc-c"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3779
+#: ../fish/guestfish-actions.pod:4096
 #, no-wrap
 msgid ""
-" tgz-out directory (tarball|-)\n"
+" wc-c path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3784
-msgid "To download an uncompressed tarball, use C<tar-out>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3788
-msgid "touch"
+#: ../fish/guestfish-actions.pod:4101
+msgid "wc-l"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3790
+#: ../fish/guestfish-actions.pod:4103
 #, no-wrap
 msgid ""
-" touch path\n"
+" wc-l path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3799
-msgid "truncate"
+#: ../fish/guestfish-actions.pod:4108
+msgid "wc-w"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3801
+#: ../fish/guestfish-actions.pod:4110
 #, no-wrap
 msgid ""
-" truncate path\n"
+" wc-w path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3806
-msgid "truncate-size"
+#: ../fish/guestfish-actions.pod:4115
+msgid "write"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3808
+#: ../fish/guestfish-actions.pod:4117
 #, no-wrap
 msgid ""
-" truncate-size path size\n"
+" write path content\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3813
-msgid ""
-"If the current file size is less than C<size> then the file is extended to "
-"the required size with zero bytes.  This creates a sparse file (ie. disk "
-"blocks are not allocated for the file until you write to it).  To create a "
-"non-sparse file of zeroes, use C<fallocate64> instead."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3819
-msgid "tune2fs-l"
+#: ../fish/guestfish-actions.pod:4125
+msgid "write-file"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3821
+#: ../fish/guestfish-actions.pod:4127
 #, no-wrap
 msgid ""
-" tune2fs-l device\n"
+" write-file path content size\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3831
-msgid "txz-in"
+#: ../fish/guestfish-actions.pod:4150
+msgid "zegrep"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3833
+#: ../fish/guestfish-actions.pod:4152
 #, no-wrap
 msgid ""
-" txz-in (tarball|-) directory\n"
+" zegrep regex path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3840
-msgid "txz-out"
+#: ../fish/guestfish-actions.pod:4160
+msgid "zegrepi"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3842
+#: ../fish/guestfish-actions.pod:4162
 #, no-wrap
 msgid ""
-" txz-out directory (tarball|-)\n"
+" zegrepi regex path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3849
-msgid "umask"
+#: ../fish/guestfish-actions.pod:4170
+msgid "zero"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3851
+#: ../fish/guestfish-actions.pod:4172
 #, no-wrap
 msgid ""
-" umask mask\n"
+" zero device\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3865
-msgid "See also C<get-umask>, L<umask(2)>, C<mknod>, C<mkdir>."
+#: ../fish/guestfish-actions.pod:4180
+msgid "See also: L</zero-device>, L</scrub-device>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3870
-msgid "umount | unmount"
+#: ../fish/guestfish-actions.pod:4182
+msgid "zero-device"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3872
+#: ../fish/guestfish-actions.pod:4184
 #, no-wrap
 msgid ""
-" umount pathordevice\n"
+" zero-device device\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:3878
-msgid "umount-all | unmount-all"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish-actions.pod:3880
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish-actions.pod:4186
 msgid ""
-" umount-all\n"
-"\n"
+"This command writes zeroes over the entire C<device>.  Compare with L</zero> "
+"which just zeroes the first few blocks of a device."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3886
-msgid "upload"
+#: ../fish/guestfish-actions.pod:4193
+msgid "zerofree"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3888
+#: ../fish/guestfish-actions.pod:4195
 #, no-wrap
 msgid ""
-" upload (filename|-) remotefilename\n"
+" zerofree device\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3895
-msgid "See also C<download>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3899
-msgid "utimens"
+#: ../fish/guestfish-actions.pod:4208
+msgid "zfgrep"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3901
+#: ../fish/guestfish-actions.pod:4210
 #, no-wrap
 msgid ""
-" utimens path atsecs atnsecs mtsecs mtnsecs\n"
+" zfgrep pattern path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3920
-msgid "version"
+#: ../fish/guestfish-actions.pod:4218
+msgid "zfgrepi"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3922
+#: ../fish/guestfish-actions.pod:4220
 #, no-wrap
 msgid ""
-" version\n"
+" zfgrepi pattern path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3949
-msgid ""
-"I<Note:> Don't use this call to test for availability of features.  In "
-"enterprise distributions we backport features from later versions into "
-"earlier versions, making this an unreliable way to test for features.  Use "
-"C<available> instead."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:3955
-msgid "vfs-label"
+#: ../fish/guestfish-actions.pod:4228
+msgid "zfile"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3957
+#: ../fish/guestfish-actions.pod:4230
 #, no-wrap
 msgid ""
-" vfs-label device\n"
+" zfile meth path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:3964
-msgid "To find a filesystem from the label, use C<findfs-label>."
+#: ../fish/guestfish-actions.pod:4237
+msgid ""
+"Since 1.0.63, use L</file> instead which can now process compressed files."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3966
-msgid "vfs-type"
+#: ../fish/guestfish-actions.pod:4247
+msgid "zgrep"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3968
+#: ../fish/guestfish-actions.pod:4249
 #, no-wrap
 msgid ""
-" vfs-type device\n"
+" zgrep regex path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3978
-msgid "vfs-uuid"
+#: ../fish/guestfish-actions.pod:4257
+msgid "zgrepi"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3980
+#: ../fish/guestfish-actions.pod:4259
 #, no-wrap
 msgid ""
-" vfs-uuid device\n"
+" zgrepi regex path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:3987
-msgid "To find a filesystem from the UUID, use C<findfs-uuid>."
+# type: =head2
+#: ../fish/guestfish-commands.pod:1
+msgid "alloc"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:3989
-msgid "vg-activate"
+#: ../fish/guestfish-commands.pod:3
+msgid "allocate"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3991
+#: ../fish/guestfish-commands.pod:5
 #, no-wrap
 msgid ""
-" vg-activate true|false 'volgroups ...'\n"
+" alloc filename size\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:4004
-msgid "vg-activate-all"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish-actions.pod:4006
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish-commands.pod:7
 msgid ""
-" vg-activate-all true|false\n"
-"\n"
+"This creates an empty (zeroed) file of the given size, and then adds so it "
+"can be further examined."
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:4016
-msgid "vgcreate"
+# type: textblock
+#: ../fish/guestfish-commands.pod:10 ../fish/guestfish-commands.pod:132
+msgid "For more advanced image creation, see L<qemu-img(1)> utility."
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish-actions.pod:4018
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish-commands.pod:12 ../fish/guestfish-commands.pod:134
+msgid "Size can be specified using standard suffixes, eg. C<1M>."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-commands.pod:14
 msgid ""
-" vgcreate volgroup 'physvols ...'\n"
-"\n"
+"To create a sparse file, use L</sparse> instead.  To create a prepared disk "
+"image, see L</PREPARED DISK IMAGES>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4023
-msgid "vglvuuids"
+#: ../fish/guestfish-commands.pod:17
+msgid "copy-in"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4025
+#: ../fish/guestfish-commands.pod:19
 #, no-wrap
 msgid ""
-" vglvuuids vgname\n"
+" copy-in local [local ...] /remotedir\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:4030
+#: ../fish/guestfish-commands.pod:21
 msgid ""
-"You can use this along with C<lvs> and C<lvuuid> calls to associate logical "
-"volumes and volume groups."
+"C<copy-in> copies local files or directories recursively into the disk "
+"image, placing them in the directory called C</remotedir> (which must "
+"exist).  This guestfish meta-command turns into a sequence of L</tar-in> and "
+"other commands as necessary."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:4033
-msgid "See also C<vgpvuuids>."
+#: ../fish/guestfish-commands.pod:26
+msgid ""
+"Multiple local files and directories can be specified, but the last "
+"parameter must always be a remote directory.  Wildcards cannot be used."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4035
-msgid "vgpvuuids"
+#: ../fish/guestfish-commands.pod:30
+msgid "copy-out"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4037
+#: ../fish/guestfish-commands.pod:32
 #, no-wrap
 msgid ""
-" vgpvuuids vgname\n"
+" copy-out remote [remote ...] localdir\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:4042
+#: ../fish/guestfish-commands.pod:34
 msgid ""
-"You can use this along with C<pvs> and C<pvuuid> calls to associate physical "
-"volumes and volume groups."
+"C<copy-out> copies remote files or directories recursively out of the disk "
+"image, placing them on the host disk in a local directory called C<localdir> "
+"(which must exist).  This guestfish meta-command turns into a sequence of L</"
+"download>, L</tar-out> and other commands as necessary."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:4045
-msgid "See also C<vglvuuids>."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish-actions.pod:4047
-msgid "vgremove"
+#: ../fish/guestfish-commands.pod:40
+msgid ""
+"Multiple remote files and directories can be specified, but the last "
+"parameter must always be a local directory.  To download to the current "
+"directory, use C<.> as in:"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4049
+#: ../fish/guestfish-commands.pod:44
 #, no-wrap
 msgid ""
-" vgremove vgname\n"
+" copy-out /home .\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:4056
-msgid "vgrename"
+# type: textblock
+#: ../fish/guestfish-commands.pod:46
+msgid ""
+"Wildcards cannot be used in the ordinary command, but you can use them with "
+"the help of L</glob> like this:"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4058
+#: ../fish/guestfish-commands.pod:49
 #, no-wrap
 msgid ""
-" vgrename volgroup newvolgroup\n"
+" glob copy-out /home/* .\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4062
-msgid "vgs"
+#: ../fish/guestfish-commands.pod:51
+msgid "echo"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4064
+#: ../fish/guestfish-commands.pod:53
 #, no-wrap
 msgid ""
-" vgs\n"
+" echo [params ...]\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:4072
-msgid "See also C<vgs-full>."
+#: ../fish/guestfish-commands.pod:55
+msgid "This echos the parameters to the terminal."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4074
-msgid "vgs-full"
+#: ../fish/guestfish-commands.pod:57
+msgid "edit"
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish-actions.pod:4076
-#, no-wrap
-msgid ""
-" vgs-full\n"
-"\n"
+# type: =head2
+#: ../fish/guestfish-commands.pod:59
+msgid "vi"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4081
-msgid "vgscan"
+#: ../fish/guestfish-commands.pod:61
+msgid "emacs"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4083
+#: ../fish/guestfish-commands.pod:63
 #, no-wrap
 msgid ""
-" vgscan\n"
+" edit filename\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:4088
-msgid "vguuid"
+# type: textblock
+#: ../fish/guestfish-commands.pod:65
+msgid ""
+"This is used to edit a file.  It downloads the file, edits it locally using "
+"your editor, then uploads the result."
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish-actions.pod:4090
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish-commands.pod:68
 msgid ""
-" vguuid vgname\n"
-"\n"
+"The editor is C<$EDITOR>.  However if you use the alternate commands C<vi> "
+"or C<emacs> you will get those corresponding editors."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4094
-msgid "wc-c"
+#: ../fish/guestfish-commands.pod:72
+msgid "glob"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4096
+#: ../fish/guestfish-commands.pod:74
 #, no-wrap
 msgid ""
-" wc-c path\n"
+" glob command args...\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:4101
-msgid "wc-l"
+# type: textblock
+#: ../fish/guestfish-commands.pod:76
+msgid ""
+"Expand wildcards in any paths in the args list, and run C<command> "
+"repeatedly on each matching path."
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish-actions.pod:4103
-#, no-wrap
-msgid ""
-" wc-l path\n"
-"\n"
+# type: textblock
+#: ../fish/guestfish-commands.pod:79
+msgid "See L</WILDCARDS AND GLOBBING>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4108
-msgid "wc-w"
+#: ../fish/guestfish-commands.pod:81
+msgid "lcd"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4110
+#: ../fish/guestfish-commands.pod:83
 #, no-wrap
 msgid ""
-" wc-w path\n"
+" lcd directory\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:4115
-msgid "write"
+# type: textblock
+#: ../fish/guestfish-commands.pod:85
+msgid ""
+"Change the local directory, ie. the current directory of guestfish itself."
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish-actions.pod:4117
-#, no-wrap
-msgid ""
-" write path content\n"
-"\n"
+# type: textblock
+#: ../fish/guestfish-commands.pod:88
+msgid "Note that C<!cd> won't do what you might expect."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4125
-msgid "write-file"
+#: ../fish/guestfish-commands.pod:90
+msgid "man"
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-commands.pod:92
+msgid "manual"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4127
+#: ../fish/guestfish-commands.pod:94
 #, no-wrap
 msgid ""
-" write-file path content size\n"
+"  man\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:4150
-msgid "zegrep"
+# type: textblock
+#: ../fish/guestfish-commands.pod:96
+msgid "Opens the manual page for guestfish."
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish-actions.pod:4152
-#, no-wrap
-msgid ""
-" zegrep regex path\n"
-"\n"
+# type: =head2
+#: ../fish/guestfish-commands.pod:98
+msgid "more"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4160
-msgid "zegrepi"
+#: ../fish/guestfish-commands.pod:100
+msgid "less"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4162
+#: ../fish/guestfish-commands.pod:102
 #, no-wrap
 msgid ""
-" zegrepi regex path\n"
+"  more filename\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:4170
-msgid "zero"
-msgstr ""
-
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4172
+#: ../fish/guestfish-commands.pod:104
 #, no-wrap
 msgid ""
-" zero device\n"
+" less filename\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:4180
-msgid "See also: C<zero-device>, C<scrub-device>."
+#: ../fish/guestfish-commands.pod:106
+msgid "This is used to view a file."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-commands.pod:108
+msgid ""
+"The default viewer is C<$PAGER>.  However if you use the alternate command "
+"C<less> you will get the C<less> command specifically."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4182
-msgid "zero-device"
+#: ../fish/guestfish-commands.pod:111
+msgid "reopen"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4184
+#: ../fish/guestfish-commands.pod:113
 #, no-wrap
 msgid ""
-" zero-device device\n"
+"  reopen\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:4186
+#: ../fish/guestfish-commands.pod:115
 msgid ""
-"This command writes zeroes over the entire C<device>.  Compare with C<zero> "
-"which just zeroes the first few blocks of a device."
+"Close and reopen the libguestfs handle.  It is not necessary to use this "
+"normally, because the handle is closed properly when guestfish exits.  "
+"However this is occasionally useful for testing."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4193
-msgid "zerofree"
+#: ../fish/guestfish-commands.pod:119
+msgid "sparse"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4195
+#: ../fish/guestfish-commands.pod:121
 #, no-wrap
 msgid ""
-" zerofree device\n"
+" sparse filename size\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:4208
-msgid "zfgrep"
+# type: textblock
+#: ../fish/guestfish-commands.pod:123
+msgid ""
+"This creates an empty sparse file of the given size, and then adds so it can "
+"be further examined."
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish-actions.pod:4210
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish-commands.pod:126
 msgid ""
-" zfgrep pattern path\n"
-"\n"
+"In all respects it works the same as the L</alloc> command, except that the "
+"image file is allocated sparsely, which means that disk blocks are not "
+"assigned to the file until they are needed.  Sparse disk files only use "
+"space when written to, but they are slower and there is a danger you could "
+"run out of real disk space during a write operation."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4218
-msgid "zfgrepi"
+#: ../fish/guestfish-commands.pod:136
+msgid "supported"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4220
+#: ../fish/guestfish-commands.pod:138
 #, no-wrap
 msgid ""
-" zfgrepi pattern path\n"
+" supported\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:4228
-msgid "zfile"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish-actions.pod:4230
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish-commands.pod:140
 msgid ""
-" zfile meth path\n"
-"\n"
+"This command returns a list of the optional groups known to the daemon, and "
+"indicates which ones are supported by this build of the libguestfs appliance."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:4237
-msgid ""
-"Since 1.0.63, use C<file> instead which can now process compressed files."
+#: ../fish/guestfish-commands.pod:144
+msgid "See also L<guestfs(3)/AVAILABILITY>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:4247
-msgid "zgrep"
+#: ../fish/guestfish-commands.pod:146
+msgid "time"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:4249
+#: ../fish/guestfish-commands.pod:148
 #, no-wrap
 msgid ""
-" zgrep regex path\n"
+" time command args...\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:4257
-msgid "zgrepi"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish-actions.pod:4259
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish-commands.pod:150
 msgid ""
-" zgrepi regex path\n"
-"\n"
+"Run the command as usual, but print the elapsed time afterwards.  This can "
+"be useful for benchmarking operations."
 msgstr ""
 
 # type: textblock
index f565410..83a2340 100644 (file)
@@ -36,7 +36,7 @@ MANPAGES = \
 EXTRA_DIST = \
        $(MANPAGES) \
        guestfs.pod guestfs-actions.pod guestfs-availability.pod guestfs-structs.pod \
-       guestfish.pod guestfish-actions.pod \
+       guestfish.pod guestfish-actions.pod guestfish-commands.pod \
        guestmount.pod \
        libguestfs-test-tool.pod \
        $(wildcard virt-*.pl)
@@ -61,9 +61,10 @@ guestfs.3: guestfs.pod guestfs-actions.pod guestfs-availability.pod guestfs-stru
          --release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \
          > $@-t; mv $@-t $@
 
-guestfish.1: guestfish.pod guestfish-actions.pod
+guestfish.1: guestfish.pod guestfish-actions.pod guestfish-commands.pod
        sed \
          -e '/@ACTIONS@/rguestfish-actions.pod' -e 's/@ACTIONS@//' \
+         -e '/@FISH_COMMANDS@/rguestfish-commands.pod' -e 's/@FISH_COMMANDS@//' \
          < $< | \
        $(POD2MAN) -u \
          --section 1 \
index 1fd8cbd..823b009 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libguestfs 1.5.16\n"
 "Report-Msgid-Bugs-To: libguestfs@redhat.com\n"
-"POT-Creation-Date: 2010-09-15 22:12+0200\n"
+"POT-Creation-Date: 2010-09-18 09:23+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1887,7 +1887,7 @@ msgid ""
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:924 ../fish/guestfish.pod:926
+#: ../src/guestfs.pod:924 ../fish/guestfish.pod:789
 msgid "@ACTIONS@"
 msgstr ""
 
@@ -3200,22 +3200,22 @@ msgid ""
 msgstr ""
 
 # type: =head1
-#: ../src/guestfs.pod:1645 ../fish/guestfish.pod:933 ../test-tool/libguestfs-test-tool.pod:104 ../tools/virt-edit.pl:312 ../tools/virt-rescue.pl:226
+#: ../src/guestfs.pod:1645 ../fish/guestfish.pod:796 ../test-tool/libguestfs-test-tool.pod:104 ../tools/virt-edit.pl:312 ../tools/virt-rescue.pl:226
 msgid "ENVIRONMENT VARIABLES"
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1649 ../fish/guestfish.pod:953
+#: ../src/guestfs.pod:1649 ../fish/guestfish.pod:816
 msgid "LIBGUESTFS_APPEND"
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1651 ../fish/guestfish.pod:955
+#: ../src/guestfs.pod:1651 ../fish/guestfish.pod:818
 msgid "Pass additional options to the guest kernel."
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1653 ../fish/guestfish.pod:957
+#: ../src/guestfs.pod:1653 ../fish/guestfish.pod:820
 msgid "LIBGUESTFS_DEBUG"
 msgstr ""
 
@@ -3227,17 +3227,17 @@ msgid ""
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1658 ../fish/guestfish.pod:962
+#: ../src/guestfs.pod:1658 ../fish/guestfish.pod:825
 msgid "LIBGUESTFS_MEMSIZE"
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1660 ../fish/guestfish.pod:964
+#: ../src/guestfs.pod:1660 ../fish/guestfish.pod:827
 msgid "Set the memory allocated to the qemu process, in megabytes.  For example:"
 msgstr ""
 
 # type: verbatim
-#: ../src/guestfs.pod:1663 ../fish/guestfish.pod:967
+#: ../src/guestfs.pod:1663 ../fish/guestfish.pod:830
 #, no-wrap
 msgid ""
 " LIBGUESTFS_MEMSIZE=700\n"
@@ -3245,7 +3245,7 @@ msgid ""
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1665 ../fish/guestfish.pod:969
+#: ../src/guestfs.pod:1665 ../fish/guestfish.pod:832
 msgid "LIBGUESTFS_PATH"
 msgstr ""
 
@@ -3257,12 +3257,12 @@ msgid ""
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1670 ../fish/guestfish.pod:974
+#: ../src/guestfs.pod:1670 ../fish/guestfish.pod:837
 msgid "LIBGUESTFS_QEMU"
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1672 ../fish/guestfish.pod:976
+#: ../src/guestfs.pod:1672 ../fish/guestfish.pod:839
 msgid ""
 "Set the default qemu binary that libguestfs uses.  If not set, then the qemu "
 "which was found at compile time by the configure script is used."
@@ -3274,7 +3274,7 @@ msgid "See also L</QEMU WRAPPERS> above."
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1678 ../fish/guestfish.pod:980
+#: ../src/guestfs.pod:1678 ../fish/guestfish.pod:843
 msgid "LIBGUESTFS_TRACE"
 msgstr ""
 
@@ -3286,17 +3286,17 @@ msgid ""
 msgstr ""
 
 # type: =item
-#: ../src/guestfs.pod:1683 ../fish/guestfish.pod:989
+#: ../src/guestfs.pod:1683 ../fish/guestfish.pod:852
 msgid "TMPDIR"
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1685 ../fish/guestfish.pod:991
+#: ../src/guestfs.pod:1685 ../fish/guestfish.pod:854
 msgid "Location of temporary directory, defaults to C</tmp>."
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1687 ../fish/guestfish.pod:993
+#: ../src/guestfs.pod:1687 ../fish/guestfish.pod:856
 msgid ""
 "If libguestfs was compiled to use the supermin appliance then each handle "
 "will require rather a large amount of space in this directory for short "
@@ -3305,7 +3305,7 @@ msgid ""
 msgstr ""
 
 # type: =head1
-#: ../src/guestfs.pod:1695 ../fish/guestfish.pod:1051 ../test-tool/libguestfs-test-tool.pod:109 ../fuse/guestmount.pod:178 ../inspector/virt-inspector.pl:846 ../tools/virt-cat.pl:163 ../tools/virt-df.pl:482 ../tools/virt-edit.pl:325 ../tools/virt-list-filesystems.pl:191 ../tools/virt-list-partitions.pl:229 ../tools/virt-ls.pl:210 ../tools/virt-make-fs.pl:527 ../tools/virt-rescue.pl:231 ../tools/virt-resize.pl:1390 ../tools/virt-tar.pl:257 ../tools/virt-win-reg.pl:461
+#: ../src/guestfs.pod:1695 ../fish/guestfish.pod:914 ../test-tool/libguestfs-test-tool.pod:109 ../fuse/guestmount.pod:178 ../inspector/virt-inspector.pl:846 ../tools/virt-cat.pl:163 ../tools/virt-df.pl:482 ../tools/virt-edit.pl:325 ../tools/virt-list-filesystems.pl:191 ../tools/virt-list-partitions.pl:229 ../tools/virt-ls.pl:210 ../tools/virt-make-fs.pl:527 ../tools/virt-rescue.pl:231 ../tools/virt-resize.pl:1390 ../tools/virt-tar.pl:257 ../tools/virt-win-reg.pl:461
 msgid "SEE ALSO"
 msgstr ""
 
@@ -3379,22 +3379,22 @@ msgid ""
 msgstr ""
 
 # type: =head1
-#: ../src/guestfs.pod:1755 ../fish/guestfish.pod:1067 ../test-tool/libguestfs-test-tool.pod:115 ../fuse/guestmount.pod:189 ../inspector/virt-inspector.pl:855
+#: ../src/guestfs.pod:1755 ../fish/guestfish.pod:930 ../test-tool/libguestfs-test-tool.pod:115 ../fuse/guestmount.pod:189 ../inspector/virt-inspector.pl:855
 msgid "AUTHORS"
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1757 ../fish/guestfish.pod:1069 ../test-tool/libguestfs-test-tool.pod:117 ../fuse/guestmount.pod:191
+#: ../src/guestfs.pod:1757 ../fish/guestfish.pod:932 ../test-tool/libguestfs-test-tool.pod:117 ../fuse/guestmount.pod:191
 msgid "Richard W.M. Jones (C<rjones at redhat dot com>)"
 msgstr ""
 
 # type: =head1
-#: ../src/guestfs.pod:1759 ../fish/guestfish.pod:1071 ../test-tool/libguestfs-test-tool.pod:119 ../fuse/guestmount.pod:193 ../inspector/virt-inspector.pl:861 ../tools/virt-cat.pl:177 ../tools/virt-df.pl:495 ../tools/virt-edit.pl:341 ../tools/virt-list-filesystems.pl:207 ../tools/virt-list-partitions.pl:244 ../tools/virt-ls.pl:225 ../tools/virt-make-fs.pl:556 ../tools/virt-rescue.pl:245 ../tools/virt-resize.pl:1411 ../tools/virt-tar.pl:272 ../tools/virt-win-reg.pl:491
+#: ../src/guestfs.pod:1759 ../fish/guestfish.pod:934 ../test-tool/libguestfs-test-tool.pod:119 ../fuse/guestmount.pod:193 ../inspector/virt-inspector.pl:861 ../tools/virt-cat.pl:177 ../tools/virt-df.pl:495 ../tools/virt-edit.pl:341 ../tools/virt-list-filesystems.pl:207 ../tools/virt-list-partitions.pl:244 ../tools/virt-ls.pl:225 ../tools/virt-make-fs.pl:556 ../tools/virt-rescue.pl:245 ../tools/virt-resize.pl:1411 ../tools/virt-tar.pl:272 ../tools/virt-win-reg.pl:491
 msgid "COPYRIGHT"
 msgstr ""
 
 # type: textblock
-#: ../src/guestfs.pod:1761 ../fish/guestfish.pod:1073
+#: ../src/guestfs.pod:1761 ../fish/guestfish.pod:936
 msgid "Copyright (C) 2009-2010 Red Hat Inc.  L<http://libguestfs.org/>"
 msgstr ""
 
@@ -15927,5965 +15927,6005 @@ msgstr ""
 
 # type: =head2
 #: ../fish/guestfish.pod:773
-msgid "alloc | allocate"
+msgid "help"
 msgstr ""
 
 # type: verbatim
 #: ../fish/guestfish.pod:775
 #, no-wrap
 msgid ""
-" alloc filename size\n"
+" help\n"
+" help cmd\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:777
+#: ../fish/guestfish.pod:778
 msgid ""
-"This creates an empty (zeroed) file of the given size, and then adds so it "
-"can be further examined."
+"Without any parameter, this lists all commands.  With a C<cmd> parameter, "
+"this displays detailed help for a command."
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:780 ../fish/guestfish.pod:903
-msgid "For more advanced image creation, see L<qemu-img(1)> utility."
+# type: =head2
+#: ../fish/guestfish.pod:781
+msgid "quit | exit"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:782 ../fish/guestfish.pod:905
-msgid "Size can be specified using standard suffixes, eg. C<1M>."
+#: ../fish/guestfish.pod:783
+msgid "This exits guestfish.  You can also use C<^D> key."
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish.pod:784
-msgid "copy-in"
+# type: textblock
+#: ../fish/guestfish.pod:785
+msgid "@FISH_COMMANDS@"
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish.pod:786
-#, no-wrap
-msgid ""
-" copy-in local [local ...] /remotedir\n"
-"\n"
+# type: =head1
+#: ../fish/guestfish.pod:787
+msgid "COMMANDS"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:788
-msgid ""
-"C<copy-in> copies local files or directories recursively into the disk "
-"image, placing them in the directory called C</remotedir> (which must "
-"exist).  This guestfish meta-command turns into a sequence of L</tar-in> and "
-"other commands as necessary."
+# type: =head1
+#: ../fish/guestfish.pod:791 ../test-tool/libguestfs-test-tool.pod:83
+msgid "EXIT CODE"
 msgstr ""
 
 # type: textblock
 #: ../fish/guestfish.pod:793
 msgid ""
-"Multiple local files and directories can be specified, but the last "
-"parameter must always be a remote directory.  Wildcards cannot be used."
+"guestfish returns 0 if the commands completed without error, or 1 if there "
+"was an error."
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish.pod:797
-msgid "copy-out"
+# type: =item
+#: ../fish/guestfish.pod:800
+msgid "EDITOR"
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish.pod:799
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish.pod:802
 msgid ""
-" copy-out remote [remote ...] localdir\n"
-"\n"
+"The C<edit> command uses C<$EDITOR> as the editor.  If not set, it uses "
+"C<vi>."
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:801
-msgid ""
-"C<copy-out> copies remote files or directories recursively out of the disk "
-"image, placing them on the host disk in a local directory called C<localdir> "
-"(which must exist).  This guestfish meta-command turns into a sequence of "
-"L</download>, L</tar-out> and other commands as necessary."
+# type: =item
+#: ../fish/guestfish.pod:805
+msgid "GUESTFISH_PID"
 msgstr ""
 
 # type: textblock
 #: ../fish/guestfish.pod:807
 msgid ""
-"Multiple remote files and directories can be specified, but the last "
-"parameter must always be a local directory.  To download to the current "
-"directory, use C<.> as in:"
+"Used with the I<--remote> option to specify the remote guestfish process to "
+"control.  See section L</REMOTE CONTROL GUESTFISH OVER A SOCKET>."
 msgstr ""
 
-# type: verbatim
+# type: =item
 #: ../fish/guestfish.pod:811
-#, no-wrap
-msgid ""
-" copy-out /home .\n"
-"\n"
+msgid "HOME"
 msgstr ""
 
 # type: textblock
 #: ../fish/guestfish.pod:813
 msgid ""
-"Wildcards cannot be used in the ordinary command, but you can use them with "
-"the help of L</glob> like this:"
+"If compiled with GNU readline support, various files in the home directory "
+"can be used.  See L</FILES>."
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish.pod:816
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish.pod:822
 msgid ""
-" glob copy-out /home/* .\n"
-"\n"
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:818
-msgid "echo"
+"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages.  This has the same "
+"effect as using the B<-v> option."
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish.pod:820
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish.pod:834
 msgid ""
-" echo [params ...]\n"
-"\n"
+"Set the path that guestfish uses to search for kernel and initrd.img.  See "
+"the discussion of paths in L<guestfs(3)>."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:822
-msgid "This echos the parameters to the terminal."
-msgstr ""
-
-# type: =head2
-#: ../fish/guestfish.pod:824
-msgid "edit | vi | emacs"
-msgstr ""
-
-# type: verbatim
-#: ../fish/guestfish.pod:826
-#, no-wrap
-msgid ""
-" edit filename\n"
-"\n"
+#: ../fish/guestfish.pod:845
+msgid "Set C<LIBGUESTFS_TRACE=1> to enable command traces."
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:828
-msgid ""
-"This is used to edit a file.  It downloads the file, edits it locally using "
-"your editor, then uploads the result."
+# type: =item
+#: ../fish/guestfish.pod:847
+msgid "PAGER"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:831
+#: ../fish/guestfish.pod:849
 msgid ""
-"The editor is C<$EDITOR>.  However if you use the alternate commands C<vi> "
-"or C<emacs> you will get those corresponding editors."
+"The C<more> command uses C<$PAGER> as the pager.  If not set, it uses "
+"C<more>."
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish.pod:835
-msgid "glob"
+# type: =head1
+#: ../fish/guestfish.pod:864 ../test-tool/libguestfs-test-tool.pod:88
+msgid "FILES"
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish.pod:837
-#, no-wrap
-msgid ""
-" glob command args...\n"
-"\n"
+# type: =item
+#: ../fish/guestfish.pod:868
+msgid "$HOME/.guestfish"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:839
+#: ../fish/guestfish.pod:870
 msgid ""
-"Expand wildcards in any paths in the args list, and run C<command> "
-"repeatedly on each matching path."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish.pod:842
-msgid "See section WILDCARDS AND GLOBBING."
+"If compiled with GNU readline support, then the command history is saved in "
+"this file."
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish.pod:844
-msgid "help"
+# type: =item
+#: ../fish/guestfish.pod:873
+msgid "$HOME/.inputrc"
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish.pod:846
-#, no-wrap
-msgid ""
-" help\n"
-" help cmd\n"
-"\n"
+# type: =item
+#: ../fish/guestfish.pod:875
+msgid "/etc/inputrc"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:849
+#: ../fish/guestfish.pod:877
 msgid ""
-"Without any parameter, this lists all commands.  With a C<cmd> parameter, "
-"this displays detailed help for a command."
+"If compiled with GNU readline support, then these files can be used to "
+"configure readline.  For further information, please see "
+"L<readline(3)/INITIALIZATION FILE>."
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish.pod:852
-msgid "lcd"
+# type: textblock
+#: ../fish/guestfish.pod:881
+msgid "To write rules which only apply to guestfish, use:"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish.pod:854
+#: ../fish/guestfish.pod:883
 #, no-wrap
 msgid ""
-" lcd directory\n"
+" $if guestfish\n"
+" ...\n"
+" $endif\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:856
-msgid "Change the local directory, ie. the current directory of guestfish itself."
+#: ../fish/guestfish.pod:887
+msgid ""
+"Variables that you can set in inputrc that change the behaviour of guestfish "
+"in useful ways include:"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:859
-msgid "Note that C<!cd> won't do what you might expect."
+# type: =item
+#: ../fish/guestfish.pod:892
+msgid "completion-ignore-case (default: on)"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish.pod:861
-msgid "man | manual"
+# type: textblock
+#: ../fish/guestfish.pod:894
+msgid ""
+"By default, guestfish will ignore case when tab-completing paths on the "
+"disk.  Use:"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish.pod:863
+#: ../fish/guestfish.pod:897
 #, no-wrap
 msgid ""
-" man\n"
+" set completion-ignore-case off\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:865
-msgid "Opens the manual page for guestfish."
+#: ../fish/guestfish.pod:899
+msgid "to make guestfish case sensitive."
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish.pod:867
-msgid "more | less"
+# type: =item
+#: ../fish/guestfish.pod:903
+msgid "test1.img"
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish.pod:869
-#, no-wrap
-msgid ""
-" more filename\n"
-"\n"
+# type: =item
+#: ../fish/guestfish.pod:905
+msgid "test2.img (etc)"
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish.pod:871
-#, no-wrap
+# type: textblock
+#: ../fish/guestfish.pod:907
 msgid ""
-" less filename\n"
-"\n"
+"When using the C<-N> or C<--new> option, the prepared disk or filesystem "
+"will be created in the file C<test1.img> in the current directory.  The "
+"second use of C<-N> will use C<test2.img> and so on.  Any existing file with "
+"the same name will be overwritten."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:873
-msgid "This is used to view a file."
+#: ../fish/guestfish.pod:916
+msgid ""
+"L<guestfs(3)>, L<http://libguestfs.org/>, L<virt-cat(1)>, L<virt-df(1)>, "
+"L<virt-edit(1)>, L<virt-list-filesystems(1)>, L<virt-list-partitions(1)>, "
+"L<virt-ls(1)>, L<virt-make-fs(1)>, L<virt-rescue(1)>, L<virt-resize(1)>, "
+"L<virt-tar(1)>, L<virt-win-reg(1)>."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:875
+#: ../fish/guestfish.pod:939 ../test-tool/libguestfs-test-tool.pod:124 ../fuse/guestmount.pod:198 ../inspector/virt-inspector.pl:865 ../tools/virt-cat.pl:181 ../tools/virt-df.pl:499 ../tools/virt-edit.pl:345 ../tools/virt-list-filesystems.pl:211 ../tools/virt-list-partitions.pl:248 ../tools/virt-ls.pl:229 ../tools/virt-make-fs.pl:560 ../tools/virt-rescue.pl:249 ../tools/virt-resize.pl:1415 ../tools/virt-tar.pl:276 ../tools/virt-win-reg.pl:495
 msgid ""
-"The default viewer is C<$PAGER>.  However if you use the alternate command "
-"C<less> you will get the C<less> command specifically."
+"This program is free software; you can redistribute it and/or modify it "
+"under the terms of the GNU General Public License as published by the Free "
+"Software Foundation; either version 2 of the License, or (at your option) "
+"any later version."
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish.pod:878
-msgid "quit | exit"
+# type: textblock
+#: ../fish/guestfish.pod:944 ../test-tool/libguestfs-test-tool.pod:129 ../fuse/guestmount.pod:203 ../inspector/virt-inspector.pl:870 ../tools/virt-cat.pl:186 ../tools/virt-df.pl:504 ../tools/virt-edit.pl:350 ../tools/virt-list-filesystems.pl:216 ../tools/virt-list-partitions.pl:253 ../tools/virt-ls.pl:234 ../tools/virt-make-fs.pl:565 ../tools/virt-rescue.pl:254 ../tools/virt-resize.pl:1420 ../tools/virt-tar.pl:281 ../tools/virt-win-reg.pl:500
+msgid ""
+"This program is distributed in the hope that it will be useful, but WITHOUT "
+"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
+"FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for "
+"more details."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:880
-msgid "This exits guestfish.  You can also use C<^D> key."
+#: ../fish/guestfish.pod:949 ../test-tool/libguestfs-test-tool.pod:134 ../fuse/guestmount.pod:208 ../inspector/virt-inspector.pl:875 ../tools/virt-cat.pl:191 ../tools/virt-df.pl:509 ../tools/virt-edit.pl:355 ../tools/virt-list-filesystems.pl:221 ../tools/virt-list-partitions.pl:258 ../tools/virt-ls.pl:239 ../tools/virt-make-fs.pl:570 ../tools/virt-rescue.pl:259 ../tools/virt-resize.pl:1425 ../tools/virt-tar.pl:286 ../tools/virt-win-reg.pl:505
+msgid ""
+"You should have received a copy of the GNU General Public License along with "
+"this program; if not, write to the Free Software Foundation, Inc., 675 Mass "
+"Ave, Cambridge, MA 02139, USA."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish.pod:882
-msgid "reopen"
+#: ../fish/guestfish-actions.pod:1
+msgid "add-cdrom | cdrom"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish.pod:884
+#: ../fish/guestfish-actions.pod:3
 #, no-wrap
 msgid ""
-" reopen\n"
+" add-cdrom filename\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:886
+#: ../fish/guestfish-actions.pod:15
 msgid ""
-"Close and reopen the libguestfs handle.  It is not necessary to use this "
-"normally, because the handle is closed properly when guestfish exits.  "
-"However this is occasionally useful for testing."
+"This call checks for the existence of C<filename>.  This stops you from "
+"specifying other types of drive which are supported by qemu such as C<nbd:> "
+"and C<http:> URLs.  To specify those, use the general L</config> call "
+"instead."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:22
+msgid ""
+"If you just want to add an ISO file (often you use this as an efficient way "
+"to transfer large files into the guest), then you should probably use "
+"L</add-drive-ro> instead."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish.pod:890
-msgid "sparse"
+#: ../fish/guestfish-actions.pod:28
+msgid "add-drive | add"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish.pod:892
+#: ../fish/guestfish-actions.pod:30
 #, no-wrap
 msgid ""
-" sparse filename size\n"
+" add-drive filename\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:894
+#: ../fish/guestfish-actions.pod:49 ../fish/guestfish-actions.pod:75
 msgid ""
-"This creates an empty sparse file of the given size, and then adds so it can "
-"be further examined."
-msgstr ""
+"C<if=...> is set at compile time by the configuration option C<./configure "
+"--with-drive-if=...>.  In the rare case where you might need to change this "
+"at run time, use L</add-drive-with-if> or L</add-drive-ro-with-if>."
+msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:897
+#: ../fish/guestfish-actions.pod:54 ../fish/guestfish-actions.pod:80
 msgid ""
-"In all respects it works the same as the C<alloc> command, except that the "
-"image file is allocated sparsely, which means that disk blocks are not "
-"assigned to the file until they are needed.  Sparse disk files only use "
-"space when written to, but they are slower and there is a danger you could "
-"run out of real disk space during a write operation."
+"Note that this call checks for the existence of C<filename>.  This stops you "
+"from specifying other types of drive which are supported by qemu such as "
+"C<nbd:> and C<http:> URLs.  To specify those, use the general L</config> "
+"call instead."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish.pod:907
-msgid "supported"
+#: ../fish/guestfish-actions.pod:59
+msgid "add-drive-ro | add-ro"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish.pod:909
+#: ../fish/guestfish-actions.pod:61
 #, no-wrap
 msgid ""
-" supported\n"
+" add-drive-ro filename\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:911
+# type: =head2
+#: ../fish/guestfish-actions.pod:85
+msgid "add-drive-ro-with-if"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:87
+#, no-wrap
 msgid ""
-"This command returns a list of the optional groups known to the daemon, and "
-"indicates which ones are supported by this build of the libguestfs "
-"appliance."
+" add-drive-ro-with-if filename iface\n"
+"\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:915
-msgid "See also L<guestfs(3)/AVAILABILITY>."
+#: ../fish/guestfish-actions.pod:89
+msgid ""
+"This is the same as L</add-drive-ro> but it allows you to specify the QEMU "
+"interface emulation to use at run time."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish.pod:917
-msgid "time"
+#: ../fish/guestfish-actions.pod:92
+msgid "add-drive-with-if"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish.pod:919
+#: ../fish/guestfish-actions.pod:94
 #, no-wrap
 msgid ""
-" time command args...\n"
+" add-drive-with-if filename iface\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:921
+#: ../fish/guestfish-actions.pod:96
 msgid ""
-"Run the command as usual, but print the elapsed time afterwards.  This can "
-"be useful for benchmarking operations."
+"This is the same as L</add-drive> but it allows you to specify the QEMU "
+"interface emulation to use at run time."
 msgstr ""
 
-# type: =head1
-#: ../fish/guestfish.pod:924
-msgid "COMMANDS"
+# type: =head2
+#: ../fish/guestfish-actions.pod:99
+msgid "aug-clear"
 msgstr ""
 
-# type: =head1
-#: ../fish/guestfish.pod:928 ../test-tool/libguestfs-test-tool.pod:83
-msgid "EXIT CODE"
+# type: verbatim
+#: ../fish/guestfish-actions.pod:101
+#, no-wrap
+msgid ""
+" aug-clear augpath\n"
+"\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:930
-msgid ""
-"guestfish returns 0 if the commands completed without error, or 1 if there "
-"was an error."
+# type: =head2
+#: ../fish/guestfish-actions.pod:106
+msgid "aug-close"
 msgstr ""
 
-# type: =item
-#: ../fish/guestfish.pod:937
-msgid "EDITOR"
+# type: verbatim
+#: ../fish/guestfish-actions.pod:108
+#, no-wrap
+msgid ""
+" aug-close\n"
+"\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:939
+#: ../fish/guestfish-actions.pod:110
 msgid ""
-"The C<edit> command uses C<$EDITOR> as the editor.  If not set, it uses "
-"C<vi>."
+"Close the current Augeas handle and free up any resources used by it.  After "
+"calling this, you have to call L</aug-init> again before you can use any "
+"other Augeas functions."
 msgstr ""
 
-# type: =item
-#: ../fish/guestfish.pod:942
-msgid "GUESTFISH_PID"
+# type: =head2
+#: ../fish/guestfish-actions.pod:115
+msgid "aug-defnode"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:117
+#, no-wrap
+msgid ""
+" aug-defnode name expr val\n"
+"\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:944
+#: ../fish/guestfish-actions.pod:122
 msgid ""
-"Used with the I<--remote> option to specify the remote guestfish process to "
-"control.  See section L</REMOTE CONTROL GUESTFISH OVER A SOCKET>."
+"If C<expr> evaluates to an empty nodeset, a node is created, equivalent to "
+"calling L</aug-set> C<expr>, C<value>.  C<name> will be the nodeset "
+"containing that single node."
 msgstr ""
 
-# type: =item
-#: ../fish/guestfish.pod:948
-msgid "HOME"
+# type: =head2
+#: ../fish/guestfish-actions.pod:130
+msgid "aug-defvar"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:950
+# type: verbatim
+#: ../fish/guestfish-actions.pod:132
+#, no-wrap
 msgid ""
-"If compiled with GNU readline support, various files in the home directory "
-"can be used.  See L</FILES>."
+" aug-defvar name expr\n"
+"\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:959
-msgid ""
-"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages.  This has the same "
-"effect as using the B<-v> option."
+# type: =head2
+#: ../fish/guestfish-actions.pod:141
+msgid "aug-get"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:971
+# type: verbatim
+#: ../fish/guestfish-actions.pod:143
+#, no-wrap
 msgid ""
-"Set the path that guestfish uses to search for kernel and initrd.img.  See "
-"the discussion of paths in L<guestfs(3)>."
+" aug-get augpath\n"
+"\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:982
-msgid "Set C<LIBGUESTFS_TRACE=1> to enable command traces."
+# type: =head2
+#: ../fish/guestfish-actions.pod:148
+msgid "aug-init"
 msgstr ""
 
-# type: =item
-#: ../fish/guestfish.pod:984
-msgid "PAGER"
+# type: verbatim
+#: ../fish/guestfish-actions.pod:150
+#, no-wrap
+msgid ""
+" aug-init root flags\n"
+"\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:986
-msgid ""
-"The C<more> command uses C<$PAGER> as the pager.  If not set, it uses "
-"C<more>."
+#: ../fish/guestfish-actions.pod:156
+msgid "You must call this before using any other L</aug-*> commands."
 msgstr ""
 
-# type: =head1
-#: ../fish/guestfish.pod:1001 ../test-tool/libguestfs-test-tool.pod:88
-msgid "FILES"
+# type: textblock
+#: ../fish/guestfish-actions.pod:191
+msgid "Do not load the tree in L</aug-init>."
 msgstr ""
 
-# type: =item
-#: ../fish/guestfish.pod:1005
-msgid "$HOME/.guestfish"
+# type: textblock
+#: ../fish/guestfish-actions.pod:195
+msgid "To close the handle, you can call L</aug-close>."
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:1007
-msgid ""
-"If compiled with GNU readline support, then the command history is saved in "
-"this file."
+# type: =head2
+#: ../fish/guestfish-actions.pod:199
+msgid "aug-insert"
 msgstr ""
 
-# type: =item
-#: ../fish/guestfish.pod:1010
-msgid "$HOME/.inputrc"
+# type: verbatim
+#: ../fish/guestfish-actions.pod:201
+#, no-wrap
+msgid ""
+" aug-insert augpath label true|false\n"
+"\n"
 msgstr ""
 
-# type: =item
-#: ../fish/guestfish.pod:1012
-msgid "/etc/inputrc"
+# type: =head2
+#: ../fish/guestfish-actions.pod:211
+msgid "aug-load"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:1014
+# type: verbatim
+#: ../fish/guestfish-actions.pod:213
+#, no-wrap
 msgid ""
-"If compiled with GNU readline support, then these files can be used to "
-"configure readline.  For further information, please see "
-"L<readline(3)/INITIALIZATION FILE>."
+" aug-load\n"
+"\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:1018
-msgid "To write rules which only apply to guestfish, use:"
+# type: =head2
+#: ../fish/guestfish-actions.pod:220
+msgid "aug-ls"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish.pod:1020
+#: ../fish/guestfish-actions.pod:222
 #, no-wrap
 msgid ""
-" $if guestfish\n"
-" ...\n"
-" $endif\n"
+" aug-ls augpath\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1024
+#: ../fish/guestfish-actions.pod:224
 msgid ""
-"Variables that you can set in inputrc that change the behaviour of guestfish "
-"in useful ways include:"
+"This is just a shortcut for listing L</aug-match> C<path/*> and sorting the "
+"resulting nodes into alphabetical order."
 msgstr ""
 
-# type: =item
-#: ../fish/guestfish.pod:1029
-msgid "completion-ignore-case (default: on)"
+# type: =head2
+#: ../fish/guestfish-actions.pod:227
+msgid "aug-match"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:1031
+# type: verbatim
+#: ../fish/guestfish-actions.pod:229
+#, no-wrap
 msgid ""
-"By default, guestfish will ignore case when tab-completing paths on the "
-"disk.  Use:"
+" aug-match augpath\n"
+"\n"
+msgstr ""
+
+# type: =head2
+#: ../fish/guestfish-actions.pod:235
+msgid "aug-mv"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish.pod:1034
+#: ../fish/guestfish-actions.pod:237
 #, no-wrap
 msgid ""
-" set completion-ignore-case off\n"
+" aug-mv src dest\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:1036
-msgid "to make guestfish case sensitive."
+# type: =head2
+#: ../fish/guestfish-actions.pod:242
+msgid "aug-rm"
 msgstr ""
 
-# type: =item
-#: ../fish/guestfish.pod:1040
-msgid "test1.img"
+# type: verbatim
+#: ../fish/guestfish-actions.pod:244
+#, no-wrap
+msgid ""
+" aug-rm augpath\n"
+"\n"
 msgstr ""
 
-# type: =item
-#: ../fish/guestfish.pod:1042
-msgid "test2.img (etc)"
+# type: =head2
+#: ../fish/guestfish-actions.pod:250
+msgid "aug-save"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:1044
+# type: verbatim
+#: ../fish/guestfish-actions.pod:252
+#, no-wrap
 msgid ""
-"When using the C<-N> or C<--new> option, the prepared disk or filesystem "
-"will be created in the file C<test1.img> in the current directory.  The "
-"second use of C<-N> will use C<test2.img> and so on.  Any existing file with "
-"the same name will be overwritten."
+" aug-save\n"
+"\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1053
+#: ../fish/guestfish-actions.pod:256
 msgid ""
-"L<guestfs(3)>, L<http://libguestfs.org/>, L<virt-cat(1)>, L<virt-df(1)>, "
-"L<virt-edit(1)>, L<virt-list-filesystems(1)>, L<virt-list-partitions(1)>, "
-"L<virt-ls(1)>, L<virt-make-fs(1)>, L<virt-rescue(1)>, L<virt-resize(1)>, "
-"L<virt-tar(1)>, L<virt-win-reg(1)>."
+"The flags which were passed to L</aug-init> affect exactly how files are "
+"saved."
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:1076 ../test-tool/libguestfs-test-tool.pod:124 ../fuse/guestmount.pod:198 ../inspector/virt-inspector.pl:865 ../tools/virt-cat.pl:181 ../tools/virt-df.pl:499 ../tools/virt-edit.pl:345 ../tools/virt-list-filesystems.pl:211 ../tools/virt-list-partitions.pl:248 ../tools/virt-ls.pl:229 ../tools/virt-make-fs.pl:560 ../tools/virt-rescue.pl:249 ../tools/virt-resize.pl:1415 ../tools/virt-tar.pl:276 ../tools/virt-win-reg.pl:495
-msgid ""
-"This program is free software; you can redistribute it and/or modify it "
-"under the terms of the GNU General Public License as published by the Free "
-"Software Foundation; either version 2 of the License, or (at your option) "
-"any later version."
+# type: =head2
+#: ../fish/guestfish-actions.pod:259
+msgid "aug-set"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish.pod:1081 ../test-tool/libguestfs-test-tool.pod:129 ../fuse/guestmount.pod:203 ../inspector/virt-inspector.pl:870 ../tools/virt-cat.pl:186 ../tools/virt-df.pl:504 ../tools/virt-edit.pl:350 ../tools/virt-list-filesystems.pl:216 ../tools/virt-list-partitions.pl:253 ../tools/virt-ls.pl:234 ../tools/virt-make-fs.pl:565 ../tools/virt-rescue.pl:254 ../tools/virt-resize.pl:1420 ../tools/virt-tar.pl:281 ../tools/virt-win-reg.pl:500
+# type: verbatim
+#: ../fish/guestfish-actions.pod:261
+#, no-wrap
 msgid ""
-"This program is distributed in the hope that it will be useful, but WITHOUT "
-"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
-"FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for "
-"more details."
+" aug-set augpath val\n"
+"\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish.pod:1086 ../test-tool/libguestfs-test-tool.pod:134 ../fuse/guestmount.pod:208 ../inspector/virt-inspector.pl:875 ../tools/virt-cat.pl:191 ../tools/virt-df.pl:509 ../tools/virt-edit.pl:355 ../tools/virt-list-filesystems.pl:221 ../tools/virt-list-partitions.pl:258 ../tools/virt-ls.pl:239 ../tools/virt-make-fs.pl:570 ../tools/virt-rescue.pl:259 ../tools/virt-resize.pl:1425 ../tools/virt-tar.pl:286 ../tools/virt-win-reg.pl:505
+#: ../fish/guestfish-actions.pod:265
 msgid ""
-"You should have received a copy of the GNU General Public License along with "
-"this program; if not, write to the Free Software Foundation, Inc., 675 Mass "
-"Ave, Cambridge, MA 02139, USA."
+"In the Augeas API, it is possible to clear a node by setting the value to "
+"NULL.  Due to an oversight in the libguestfs API you cannot do that with "
+"this call.  Instead you must use the L</aug-clear> call."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:1
-msgid "add-cdrom | cdrom"
+#: ../fish/guestfish-actions.pod:270
+msgid "available"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:3
+#: ../fish/guestfish-actions.pod:272
 #, no-wrap
 msgid ""
-" add-cdrom filename\n"
+" available 'groups ...'\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:15
+#: ../fish/guestfish-actions.pod:278
 msgid ""
-"This call checks for the existence of C<filename>.  This stops you from "
-"specifying other types of drive which are supported by qemu such as C<nbd:> "
-"and C<http:> URLs.  To specify those, use the general C<config> call "
-"instead."
+"The libguestfs groups, and the functions that those groups correspond to, "
+"are listed in L<guestfs(3)/AVAILABILITY>.  You can also fetch this list at "
+"runtime by calling L</available-all-groups>."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:22
+#: ../fish/guestfish-actions.pod:302
+msgid "You must call L</launch> before calling this function."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:324
 msgid ""
-"If you just want to add an ISO file (often you use this as an efficient way "
-"to transfer large files into the guest), then you should probably use "
-"C<add-drive-ro> instead."
+"This call was added in version C<1.0.80>.  In previous versions of "
+"libguestfs all you could do would be to speculatively execute a command to "
+"find out if the daemon implemented it.  See also L</version>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:28
-msgid "add-drive | add"
+#: ../fish/guestfish-actions.pod:331
+msgid "available-all-groups"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:30
+#: ../fish/guestfish-actions.pod:333
 #, no-wrap
 msgid ""
-" add-drive filename\n"
+" available-all-groups\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:49 ../fish/guestfish-actions.pod:75
+#: ../fish/guestfish-actions.pod:335
 msgid ""
-"C<if=...> is set at compile time by the configuration option C<./configure "
-"--with-drive-if=...>.  In the rare case where you might need to change this "
-"at run time, use C<add-drive-with-if> or C<add-drive-ro-with-if>."
+"This command returns a list of all optional groups that this daemon knows "
+"about.  Note this returns both supported and unsupported groups.  To find "
+"out which ones the daemon can actually support you have to call "
+"L</available> on each member of the returned list."
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:54 ../fish/guestfish-actions.pod:80
-msgid ""
-"Note that this call checks for the existence of C<filename>.  This stops you "
-"from specifying other types of drive which are supported by qemu such as "
-"C<nbd:> and C<http:> URLs.  To specify those, use the general C<config> call "
-"instead."
+#: ../fish/guestfish-actions.pod:341
+msgid "See also L</available> and L<guestfs(3)/AVAILABILITY>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:59
-msgid "add-drive-ro | add-ro"
+#: ../fish/guestfish-actions.pod:343
+msgid "base64-in"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:61
+#: ../fish/guestfish-actions.pod:345
 #, no-wrap
 msgid ""
-" add-drive-ro filename\n"
+" base64-in (base64file|-) filename\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:350 ../fish/guestfish-actions.pod:359 ../fish/guestfish-actions.pod:583 ../fish/guestfish-actions.pod:730 ../fish/guestfish-actions.pod:777 ../fish/guestfish-actions.pod:1154 ../fish/guestfish-actions.pod:3752 ../fish/guestfish-actions.pod:3764 ../fish/guestfish-actions.pod:3775 ../fish/guestfish-actions.pod:3786 ../fish/guestfish-actions.pod:3838 ../fish/guestfish-actions.pod:3847 ../fish/guestfish-actions.pod:3897
+msgid "Use C<-> instead of a filename to read/write from stdin/stdout."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:85
-msgid "add-drive-ro-with-if"
+#: ../fish/guestfish-actions.pod:352
+msgid "base64-out"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:87
+#: ../fish/guestfish-actions.pod:354
 #, no-wrap
 msgid ""
-" add-drive-ro-with-if filename iface\n"
+" base64-out filename (base64file|-)\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:89
-msgid ""
-"This is the same as C<add-drive-ro> but it allows you to specify the QEMU "
-"interface emulation to use at run time."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:92
-msgid "add-drive-with-if"
+#: ../fish/guestfish-actions.pod:361
+msgid "blockdev-flushbufs"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:94
+#: ../fish/guestfish-actions.pod:363
 #, no-wrap
 msgid ""
-" add-drive-with-if filename iface\n"
+" blockdev-flushbufs device\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:96
+# type: =head2
+#: ../fish/guestfish-actions.pod:370
+msgid "blockdev-getbsz"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:372
+#, no-wrap
 msgid ""
-"This is the same as C<add-drive> but it allows you to specify the QEMU "
-"interface emulation to use at run time."
+" blockdev-getbsz device\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:99
-msgid "aug-clear"
+#: ../fish/guestfish-actions.pod:381
+msgid "blockdev-getro"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:101
+#: ../fish/guestfish-actions.pod:383
 #, no-wrap
 msgid ""
-" aug-clear augpath\n"
+" blockdev-getro device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:106
-msgid "aug-close"
+#: ../fish/guestfish-actions.pod:390
+msgid "blockdev-getsize64"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:108
+#: ../fish/guestfish-actions.pod:392
 #, no-wrap
 msgid ""
-" aug-close\n"
+" blockdev-getsize64 device\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:110
-msgid ""
-"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 Augeas functions."
+#: ../fish/guestfish-actions.pod:396
+msgid "See also L</blockdev-getsz>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:115
-msgid "aug-defnode"
+#: ../fish/guestfish-actions.pod:400
+msgid "blockdev-getss"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:117
+#: ../fish/guestfish-actions.pod:402
 #, no-wrap
 msgid ""
-" aug-defnode name expr val\n"
+" blockdev-getss device\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:122
-msgid ""
-"If C<expr> evaluates to an empty nodeset, a node is created, equivalent to "
-"calling C<aug-set> C<expr>, C<value>.  C<name> will be the nodeset "
-"containing that single node."
+#: ../fish/guestfish-actions.pod:407
+msgid "(Note, this is not the size in sectors, use L</blockdev-getsz> for that)."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:130
-msgid "aug-defvar"
+#: ../fish/guestfish-actions.pod:412
+msgid "blockdev-getsz"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:132
+#: ../fish/guestfish-actions.pod:414
 #, no-wrap
 msgid ""
-" aug-defvar name expr\n"
+" blockdev-getsz device\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:419
+msgid ""
+"See also L</blockdev-getss> for the real sector size of the device, and "
+"L</blockdev-getsize64> for the more useful I<size in bytes>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:141
-msgid "aug-get"
+#: ../fish/guestfish-actions.pod:425
+msgid "blockdev-rereadpt"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:143
+#: ../fish/guestfish-actions.pod:427
 #, no-wrap
 msgid ""
-" aug-get augpath\n"
+" blockdev-rereadpt device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:148
-msgid "aug-init"
+#: ../fish/guestfish-actions.pod:433
+msgid "blockdev-setbsz"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:150
+#: ../fish/guestfish-actions.pod:435
 #, no-wrap
 msgid ""
-" aug-init root flags\n"
+" blockdev-setbsz device blocksize\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:156
-msgid "You must call this before using any other C<aug-*> commands."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:191
-msgid "Do not load the tree in C<aug-init>."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:195
-msgid "To close the handle, you can call C<aug-close>."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:199
-msgid "aug-insert"
+#: ../fish/guestfish-actions.pod:444
+msgid "blockdev-setro"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:201
+#: ../fish/guestfish-actions.pod:446
 #, no-wrap
 msgid ""
-" aug-insert augpath label true|false\n"
+" blockdev-setro device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:211
-msgid "aug-load"
+#: ../fish/guestfish-actions.pod:452
+msgid "blockdev-setrw"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:213
+#: ../fish/guestfish-actions.pod:454
 #, no-wrap
 msgid ""
-" aug-load\n"
+" blockdev-setrw device\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:220
-msgid "aug-ls"
+#: ../fish/guestfish-actions.pod:460
+msgid "case-sensitive-path"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:222
+#: ../fish/guestfish-actions.pod:462
 #, no-wrap
 msgid ""
-" aug-ls augpath\n"
+" case-sensitive-path path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:224
+#: ../fish/guestfish-actions.pod:486
 msgid ""
-"This is just a shortcut for listing C<aug-match> C<path/*> and sorting the "
-"resulting nodes into alphabetical order."
+"Thus L</case-sensitive-path> (\"/Windows/System32\")  might return "
+"C<\"/WINDOWS/system32\"> (the exact return value would depend on details of "
+"how the directories were originally created under Windows)."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:494
+msgid "See also L</realpath>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:227
-msgid "aug-match"
+#: ../fish/guestfish-actions.pod:496
+msgid "cat"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:229
+#: ../fish/guestfish-actions.pod:498
 #, no-wrap
 msgid ""
-" aug-match augpath\n"
+" cat path\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:502
+msgid ""
+"Note that this function cannot correctly handle binary files (specifically, "
+"files containing C<\\0> character which is treated as end of string).  For "
+"those you need to use the L</read-file> or L</download> functions which have "
+"a more complex interface."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:235
-msgid "aug-mv"
+#: ../fish/guestfish-actions.pod:510
+msgid "checksum"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:237
+#: ../fish/guestfish-actions.pod:512
 #, no-wrap
 msgid ""
-" aug-mv src dest\n"
+" checksum csumtype path\n"
 "\n"
 msgstr ""
 
-# type: =head2
-#: ../fish/guestfish-actions.pod:242
-msgid "aug-rm"
+# type: textblock
+#: ../fish/guestfish-actions.pod:555
+msgid "To get the checksum for a device, use L</checksum-device>."
 msgstr ""
 
-# type: verbatim
-#: ../fish/guestfish-actions.pod:244
-#, no-wrap
-msgid ""
-" aug-rm augpath\n"
-"\n"
+# type: textblock
+#: ../fish/guestfish-actions.pod:557
+msgid "To get the checksums for many files, use L</checksums-out>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:250
-msgid "aug-save"
+#: ../fish/guestfish-actions.pod:559
+msgid "checksum-device"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:252
+#: ../fish/guestfish-actions.pod:561
 #, no-wrap
 msgid ""
-" aug-save\n"
+" checksum-device csumtype device\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:256
+#: ../fish/guestfish-actions.pod:563
 msgid ""
-"The flags which were passed to C<aug-init> affect exactly how files are "
-"saved."
+"This call computes the MD5, SHAx or CRC checksum of the contents of the "
+"device named C<device>.  For the types of checksums supported see the "
+"L</checksum> command."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:259
-msgid "aug-set"
+#: ../fish/guestfish-actions.pod:567
+msgid "checksums-out"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:261
+#: ../fish/guestfish-actions.pod:569
 #, no-wrap
 msgid ""
-" aug-set augpath val\n"
+" checksums-out csumtype directory (sumsfile|-)\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:265
-msgid ""
-"In the Augeas API, it is possible to clear a node by setting the value to "
-"NULL.  Due to an oversight in the libguestfs API you cannot do that with "
-"this call.  Instead you must use the C<aug-clear> call."
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:270
-msgid "available"
+#: ../fish/guestfish-actions.pod:585
+msgid "chmod"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:272
+#: ../fish/guestfish-actions.pod:587
 #, no-wrap
 msgid ""
-" available 'groups ...'\n"
+" chmod mode path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:278
-msgid ""
-"The libguestfs groups, and the functions that those groups correspond to, "
-"are listed in L<guestfs(3)/AVAILABILITY>.  You can also fetch this list at "
-"runtime by calling C<available-all-groups>."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:302
-msgid "You must call C<launch> before calling this function."
+# type: =head2
+#: ../fish/guestfish-actions.pod:598
+msgid "chown"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:324
+# type: verbatim
+#: ../fish/guestfish-actions.pod:600
+#, no-wrap
 msgid ""
-"This call was added in version C<1.0.80>.  In previous versions of "
-"libguestfs all you could do would be to speculatively execute a command to "
-"find out if the daemon implemented it.  See also C<version>."
+" chown owner group path\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:331
-msgid "available-all-groups"
+#: ../fish/guestfish-actions.pod:608
+msgid "command"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:333
+#: ../fish/guestfish-actions.pod:610
 #, no-wrap
 msgid ""
-" available-all-groups\n"
+" command 'arguments ...'\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:335
+#: ../fish/guestfish-actions.pod:617
 msgid ""
-"This command returns a list of all optional groups that this daemon knows "
-"about.  Note this returns both supported and unsupported groups.  To find "
-"out which ones the daemon can actually support you have to call C<available> "
-"on each member of the returned list."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:341
-msgid "See also C<available> and L<guestfs(3)/AVAILABILITY>."
+"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).  Note that the "
+"command runs directly, and is I<not> invoked via the shell (see L</sh>)."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:343
-msgid "base64-in"
+#: ../fish/guestfish-actions.pod:645
+msgid "command-lines"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:345
+#: ../fish/guestfish-actions.pod:647
 #, no-wrap
 msgid ""
-" base64-in (base64file|-) filename\n"
+" command-lines 'arguments ...'\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:350 ../fish/guestfish-actions.pod:359 ../fish/guestfish-actions.pod:583 ../fish/guestfish-actions.pod:730 ../fish/guestfish-actions.pod:777 ../fish/guestfish-actions.pod:1154 ../fish/guestfish-actions.pod:3752 ../fish/guestfish-actions.pod:3764 ../fish/guestfish-actions.pod:3775 ../fish/guestfish-actions.pod:3786 ../fish/guestfish-actions.pod:3838 ../fish/guestfish-actions.pod:3847 ../fish/guestfish-actions.pod:3897
-msgid "Use C<-> instead of a filename to read/write from stdin/stdout."
+#: ../fish/guestfish-actions.pod:649
+msgid "This is the same as L</command>, but splits the result into a list of lines."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:652
+msgid "See also: L</sh-lines>"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:352
-msgid "base64-out"
+#: ../fish/guestfish-actions.pod:657
+msgid "config"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:354
+#: ../fish/guestfish-actions.pod:659
 #, no-wrap
 msgid ""
-" base64-out filename (base64file|-)\n"
+" config qemuparam qemuvalue\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:361
-msgid "blockdev-flushbufs"
+#: ../fish/guestfish-actions.pod:670
+msgid "copy-size"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:363
+#: ../fish/guestfish-actions.pod:672
 #, no-wrap
 msgid ""
-" blockdev-flushbufs device\n"
+" copy-size src dest size\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:370
-msgid "blockdev-getbsz"
+#: ../fish/guestfish-actions.pod:680
+msgid "cp"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:372
+#: ../fish/guestfish-actions.pod:682
 #, no-wrap
 msgid ""
-" blockdev-getbsz device\n"
+" cp src dest\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:381
-msgid "blockdev-getro"
+#: ../fish/guestfish-actions.pod:687
+msgid "cp-a"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:383
+#: ../fish/guestfish-actions.pod:689
 #, no-wrap
 msgid ""
-" blockdev-getro device\n"
+" cp-a src dest\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:390
-msgid "blockdev-getsize64"
+#: ../fish/guestfish-actions.pod:694
+msgid "dd"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:392
+#: ../fish/guestfish-actions.pod:696
 #, no-wrap
 msgid ""
-" blockdev-getsize64 device\n"
+" dd src dest\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:396
-msgid "See also C<blockdev-getsz>."
+#: ../fish/guestfish-actions.pod:703
+msgid ""
+"If the destination is a device, it must be as large or larger than the "
+"source file or device, otherwise the copy will fail.  This command cannot do "
+"partial copies (see L</copy-size>)."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:400
-msgid "blockdev-getss"
+#: ../fish/guestfish-actions.pod:707
+msgid "debug"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:402
+#: ../fish/guestfish-actions.pod:709
 #, no-wrap
 msgid ""
-" blockdev-getss device\n"
+" debug subcmd 'extraargs ...'\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:407
-msgid "(Note, this is not the size in sectors, use C<blockdev-getsz> for that)."
+#: ../fish/guestfish-actions.pod:711
+msgid ""
+"The L</debug> command exposes some internals of C<guestfsd> (the guestfs "
+"daemon) that runs inside the qemu subprocess."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:412
-msgid "blockdev-getsz"
+#: ../fish/guestfish-actions.pod:719
+msgid "debug-upload"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:414
+#: ../fish/guestfish-actions.pod:721
 #, no-wrap
 msgid ""
-" blockdev-getsz device\n"
+" debug-upload (filename|-) tmpname mode\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:419
-msgid ""
-"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>."
+#: ../fish/guestfish-actions.pod:723
+msgid "The L</debug-upload> command uploads a file to the libguestfs appliance."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:425
-msgid "blockdev-rereadpt"
+#: ../fish/guestfish-actions.pod:732
+msgid "df"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:427
+#: ../fish/guestfish-actions.pod:734
 #, no-wrap
 msgid ""
-" blockdev-rereadpt device\n"
+" df\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:433
-msgid "blockdev-setbsz"
+#: ../fish/guestfish-actions.pod:742
+msgid "df-h"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:435
+#: ../fish/guestfish-actions.pod:744
 #, no-wrap
 msgid ""
-" blockdev-setbsz device blocksize\n"
+" df-h\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:444
-msgid "blockdev-setro"
+#: ../fish/guestfish-actions.pod:753
+msgid "dmesg"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:446
+#: ../fish/guestfish-actions.pod:755
 #, no-wrap
 msgid ""
-" blockdev-setro device\n"
+" dmesg\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:761
+msgid ""
+"Another way to get the same information is to enable verbose messages with "
+"L</set-verbose> or by setting the environment variable C<LIBGUESTFS_DEBUG=1> "
+"before running the program."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:452
-msgid "blockdev-setrw"
+#: ../fish/guestfish-actions.pod:766
+msgid "download"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:454
+#: ../fish/guestfish-actions.pod:768
 #, no-wrap
 msgid ""
-" blockdev-setrw device\n"
+" download remotefilename (filename|-)\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:775
+msgid "See also L</upload>, L</cat>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:460
-msgid "case-sensitive-path"
+#: ../fish/guestfish-actions.pod:779
+msgid "drop-caches"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:462
+#: ../fish/guestfish-actions.pod:781
 #, no-wrap
 msgid ""
-" case-sensitive-path path\n"
+" drop-caches whattodrop\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:486
-msgid ""
-"Thus C<case-sensitive-path> (\"/Windows/System32\")  might return "
-"C<\"/WINDOWS/system32\"> (the exact return value would depend on details of "
-"how the directories were originally created under Windows)."
+# type: =head2
+#: ../fish/guestfish-actions.pod:793
+msgid "du"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:494
-msgid "See also C<realpath>."
+# type: verbatim
+#: ../fish/guestfish-actions.pod:795
+#, no-wrap
+msgid ""
+" du path\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:496
-msgid "cat"
+#: ../fish/guestfish-actions.pod:807
+msgid "e2fsck-f"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:498
+#: ../fish/guestfish-actions.pod:809
 #, no-wrap
 msgid ""
-" cat path\n"
+" e2fsck-f device\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:502
+#: ../fish/guestfish-actions.pod:815
 msgid ""
-"Note that this function cannot correctly handle binary files (specifically, "
-"files containing C<\\0> character which is treated as end of string).  For "
-"those you need to use the C<read-file> or C<download> functions which have a "
-"more complex interface."
+"This command is only needed because of L</resize2fs> (q.v.).  Normally you "
+"should use L</fsck>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:510
-msgid "checksum"
+#: ../fish/guestfish-actions.pod:818
+msgid "echo-daemon"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:512
+#: ../fish/guestfish-actions.pod:820
 #, no-wrap
 msgid ""
-" checksum csumtype path\n"
+" echo-daemon 'words ...'\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:555
-msgid "To get the checksum for a device, use C<checksum-device>."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:557
-msgid "To get the checksums for many files, use C<checksums-out>."
+#: ../fish/guestfish-actions.pod:827
+msgid "See also L</ping-daemon>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:559
-msgid "checksum-device"
+#: ../fish/guestfish-actions.pod:829
+msgid "egrep"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:561
+#: ../fish/guestfish-actions.pod:831
 #, no-wrap
 msgid ""
-" checksum-device csumtype device\n"
+" egrep regex path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:563
+# type: =head2
+#: ../fish/guestfish-actions.pod:839
+msgid "egrepi"
+msgstr ""
+
+# type: verbatim
+#: ../fish/guestfish-actions.pod:841
+#, no-wrap
 msgid ""
-"This call computes the MD5, SHAx or CRC checksum of the contents of the "
-"device named C<device>.  For the types of checksums supported see the "
-"C<checksum> command."
+" egrepi regex path\n"
+"\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:567
-msgid "checksums-out"
+#: ../fish/guestfish-actions.pod:849
+msgid "equal"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:569
+#: ../fish/guestfish-actions.pod:851
 #, no-wrap
 msgid ""
-" checksums-out csumtype directory (sumsfile|-)\n"
+" equal file1 file2\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:585
-msgid "chmod"
+#: ../fish/guestfish-actions.pod:858
+msgid "exists"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:587
+#: ../fish/guestfish-actions.pod:860
 #, no-wrap
 msgid ""
-" chmod mode path\n"
+" exists path\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:865
+msgid "See also L</is-file>, L</is-dir>, L</stat>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:598
-msgid "chown"
+#: ../fish/guestfish-actions.pod:867
+msgid "fallocate"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:600
+#: ../fish/guestfish-actions.pod:869
 #, no-wrap
 msgid ""
-" chown owner group path\n"
+" fallocate path len\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:608
-msgid "command"
+#: ../fish/guestfish-actions.pod:886
+msgid "fallocate64"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:610
+#: ../fish/guestfish-actions.pod:888
 #, no-wrap
 msgid ""
-" command 'arguments ...'\n"
+" fallocate64 path len\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:617
+#: ../fish/guestfish-actions.pod:894
 msgid ""
-"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).  Note that the "
-"command runs directly, and is I<not> invoked via the shell (see C<sh>)."
+"Note that this call allocates disk blocks for the file.  To create a sparse "
+"file use L</truncate-size> instead."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:897
+msgid ""
+"The deprecated call L</fallocate> does the same, but owing to an oversight "
+"it only allowed 30 bit lengths to be specified, effectively limiting the "
+"maximum size of files created through that call to 1GB."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:645
-msgid "command-lines"
+#: ../fish/guestfish-actions.pod:906
+msgid "fgrep"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:647
+#: ../fish/guestfish-actions.pod:908
 #, no-wrap
 msgid ""
-" command-lines 'arguments ...'\n"
+" fgrep pattern path\n"
 "\n"
 msgstr ""
 
-# type: textblock
-#: ../fish/guestfish-actions.pod:649
-msgid "This is the same as C<command>, but splits the result into a list of lines."
-msgstr ""
-
-# type: textblock
-#: ../fish/guestfish-actions.pod:652
-msgid "See also: C<sh-lines>"
-msgstr ""
-
 # type: =head2
-#: ../fish/guestfish-actions.pod:657
-msgid "config"
+#: ../fish/guestfish-actions.pod:916
+msgid "fgrepi"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:659
+#: ../fish/guestfish-actions.pod:918
 #, no-wrap
 msgid ""
-" config qemuparam qemuvalue\n"
+" fgrepi pattern path\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:670
-msgid "copy-size"
+#: ../fish/guestfish-actions.pod:926
+msgid "file"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:672
+#: ../fish/guestfish-actions.pod:928
 #, no-wrap
 msgid ""
-" copy-size src dest size\n"
+" file path\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:940
+msgid ""
+"This command can also be used on C</dev/> devices (and partitions, LV "
+"names).  You can for example use this to determine if a device contains a "
+"filesystem, although it's usually better to use L</vfs-type>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:680
-msgid "cp"
+#: ../fish/guestfish-actions.pod:950
+msgid "file-architecture"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:682
+#: ../fish/guestfish-actions.pod:952
 #, no-wrap
 msgid ""
-" cp src dest\n"
+" file-architecture filename\n"
 "\n"
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:687
-msgid "cp-a"
+#: ../fish/guestfish-actions.pod:1055
+msgid "filesize"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:689
+#: ../fish/guestfish-actions.pod:1057
 #, no-wrap
 msgid ""
-" cp-a src dest\n"
+" filesize file\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:1061
+msgid ""
+"To get other stats about a file, use L</stat>, L</lstat>, L</is-dir>, "
+"L</is-file> etc.  To get the size of block devices, use "
+"L</blockdev-getsize64>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:694
-msgid "dd"
+#: ../fish/guestfish-actions.pod:1065
+msgid "fill"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:696
+#: ../fish/guestfish-actions.pod:1067
 #, no-wrap
 msgid ""
-" dd src dest\n"
+" fill c len path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:703
+#: ../fish/guestfish-actions.pod:1073
 msgid ""
-"If the destination is a device, it must be as large or larger than the "
-"source file or device, otherwise the copy will fail.  This command cannot do "
-"partial copies (see C<copy-size>)."
+"To fill a file with zero bytes (sparsely), it is much more efficient to use "
+"L</truncate-size>.  To create a file with a pattern of repeating bytes use "
+"L</fill-pattern>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:707
-msgid "debug"
+#: ../fish/guestfish-actions.pod:1078
+msgid "fill-pattern"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:709
+#: ../fish/guestfish-actions.pod:1080
 #, no-wrap
 msgid ""
-" debug subcmd 'extraargs ...'\n"
+" fill-pattern pattern len path\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:711
+#: ../fish/guestfish-actions.pod:1082
 msgid ""
-"The C<debug> command exposes some internals of C<guestfsd> (the guestfs "
-"daemon) that runs inside the qemu subprocess."
+"This function is like L</fill> except that it creates a new file of length "
+"C<len> containing the repeating pattern of bytes in C<pattern>.  The pattern "
+"is truncated if necessary to ensure the length of the file is exactly C<len> "
+"bytes."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:719
-msgid "debug-upload"
+#: ../fish/guestfish-actions.pod:1087
+msgid "find"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:721
+#: ../fish/guestfish-actions.pod:1089
 #, no-wrap
 msgid ""
-" debug-upload (filename|-) tmpname mode\n"
+" find directory\n"
 "\n"
 msgstr ""
 
 # type: textblock
-#: ../fish/guestfish-actions.pod:723
-msgid "The C<debug-upload> command uploads a file to the libguestfs appliance."
+#: ../fish/guestfish-actions.pod:1103
+msgid "then the returned list from L</find> C</tmp> would be 4 elements:"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish-actions.pod:1116
+msgid "See also L</find0>."
 msgstr ""
 
 # type: =head2
-#: ../fish/guestfish-actions.pod:732
-msgid "df"
+#: ../fish/guestfish-actions.pod:1121
+msgid "find0"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:734
+#: ../fish/guestfish-actions.pod:1123
 #, no-wrap
 msgid ""
-" df\n"
+" find0 directory (files|-)\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:1129
+msgid "This command works the same way as L</find> with the following exceptions:"
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:742
-msgid "df-h"
+#: ../fish/guestfish-actions.pod:1156
+msgid "findfs-label"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:744
+#: ../fish/guestfish-actions.pod:1158
 #, no-wrap
 msgid ""
-" df-h\n"
+" findfs-label label\n"
 "\n"
 msgstr ""
 
+# type: textblock
+#: ../fish/guestfish-actions.pod:1164
+msgid "To find the label of a filesystem, use L</vfs-label>."
+msgstr ""
+
 # type: =head2
-#: ../fish/guestfish-actions.pod:753
-msgid "dmesg"
+#: ../fish/guestfish-actions.pod:1166
+msgid "findfs-uuid"
 msgstr ""
 
 # type: verbatim
-#: ../fish/guestfish-actions.pod:755
+#: ../fish/guestfish-actions.pod:1168
 #, no-wrap
 msgid ""
-" dmesg\n"
+"