]> git.ipfire.org Git - thirdparty/snapper.git/commitdiff
- show all items in csv and json output 1008/head
authorArvin Schnell <aschnell@suse.de>
Fri, 25 Apr 2025 07:19:48 +0000 (09:19 +0200)
committerArvin Schnell <aschnell@suse.de>
Fri, 25 Apr 2025 07:19:48 +0000 (09:19 +0200)
client/snbk/cmd-list-configs.cc
doc/snbk.xml.in

index 06099bd3d68b70eab5b750a04349a53c1cb61d4d..b2e9d69b5de8210aca55984e0bae042be22d4692 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2024 SUSE LLC
+ * Copyright (c) [2024-2025] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -54,7 +54,8 @@ namespace snapper
        enum class Column
        {
            NAME, CONFIG, TARGET_MODE, AUTOMATIC, SOURCE_PATH, TARGET_PATH, SSH_HOST,
-           SSH_USER, SSH_PORT, SSH_IDENTITY
+           SSH_USER, SSH_PORT, SSH_IDENTITY, TARGET_BTRFS_BIN, TARGET_FINDMNT_BIN,
+           TARGET_MKDIR_BIN, TARGET_REALPATH_BIN, TARGET_RM_BIN, TARGET_RMDIR_BIN
        };
 
 
@@ -92,6 +93,24 @@ namespace snapper
 
                case Column::SSH_IDENTITY:
                    return Cell(_("SSH Identity"), Id::SSH_IDENTITY);
+
+               case Column::TARGET_BTRFS_BIN:
+                   return Cell(_("Target btrfs bin"));
+
+               case Column::TARGET_FINDMNT_BIN:
+                   return Cell(_("Target findmnt Bin"));
+
+               case Column::TARGET_MKDIR_BIN:
+                   return Cell(_("Target mkdir bin"));
+
+               case Column::TARGET_REALPATH_BIN:
+                   return Cell(_("Target realpath bin"));
+
+               case Column::TARGET_RM_BIN:
+                   return Cell(_("Target rm bin"));
+
+               case Column::TARGET_RMDIR_BIN:
+                   return Cell(_("Target rmdir bin"));
            }
 
            SN_THROW(Exception("invalid column value"));
@@ -141,6 +160,24 @@ namespace snapper
                    if (backup_config.ssh_identity.empty())
                        return nullptr;
                    return backup_config.ssh_identity;
+
+               case Column::TARGET_BTRFS_BIN:
+                   return backup_config.target_btrfs_bin;
+
+               case Column::TARGET_FINDMNT_BIN:
+                   return backup_config.target_findmnt_bin;
+
+               case Column::TARGET_MKDIR_BIN:
+                   return backup_config.target_mkdir_bin;
+
+               case Column::TARGET_REALPATH_BIN:
+                   return backup_config.target_realpath_bin;
+
+               case Column::TARGET_RM_BIN:
+                   return backup_config.target_rm_bin;
+
+               case Column::TARGET_RMDIR_BIN:
+                   return backup_config.target_rmdir_bin;
            }
 
            SN_THROW(Exception("invalid column value"));
@@ -253,27 +290,34 @@ namespace snapper
     {
        ParsedOpts opts = get_opts.parse("list-configs", GetOpts::no_options);
 
-       vector<Column> columns = { Column::NAME, Column::CONFIG, Column::TARGET_MODE,
-           Column::AUTOMATIC, Column::SOURCE_PATH, Column::TARGET_PATH, Column::SSH_HOST,
-           Column::SSH_USER, Column::SSH_PORT, Column::SSH_IDENTITY };
-
        if (get_opts.has_args())
        {
            SN_THROW(OptionsException(_("Command 'list-configs' does not take arguments.")));
        }
 
+       const vector<Column> some_columns = { Column::NAME, Column::CONFIG, Column::TARGET_MODE,
+           Column::AUTOMATIC, Column::SOURCE_PATH, Column::TARGET_PATH, Column::SSH_HOST,
+           Column::SSH_USER, Column::SSH_PORT, Column::SSH_IDENTITY };
+
+       const vector<Column> all_columns = { Column::NAME, Column::CONFIG, Column::TARGET_MODE,
+           Column::AUTOMATIC, Column::SOURCE_PATH, Column::TARGET_PATH, Column::SSH_HOST,
+           Column::SSH_USER, Column::SSH_PORT, Column::SSH_IDENTITY, Column::TARGET_BTRFS_BIN,
+           Column::TARGET_FINDMNT_BIN, Column::TARGET_MKDIR_BIN, Column::TARGET_REALPATH_BIN,
+           Column::TARGET_RM_BIN, Column::TARGET_RMDIR_BIN
+       };
+
        switch (global_options.output_format())
        {
            case GlobalOptions::OutputFormat::TABLE:
-               output_table(global_options, columns, backup_configs);
+               output_table(global_options, some_columns, backup_configs);
                break;
 
            case GlobalOptions::OutputFormat::CSV:
-               output_csv(global_options, columns, backup_configs);
+               output_csv(global_options, all_columns, backup_configs);
                break;
 
            case GlobalOptions::OutputFormat::JSON:
-               output_json(global_options, columns, backup_configs);
+               output_json(global_options, all_columns, backup_configs);
                break;
        }
     }
@@ -283,7 +327,8 @@ namespace snapper
 
     const vector<string> EnumInfo<Column>::names({
        "name", "config", "target-mode", "automatic", "source-path", "target-path", "ssh-host",
-       "ssh-user", "ssh-port", "ssh-identity"
+       "ssh-user", "ssh-port", "ssh-identity", "target-btrfs-bin", "target-findmnt-bin",
+       "target-mkdir-bin", "target-realpath-bin", "target-rm-bin", "target-rmdir-bin"
     });
 
 }
index 07370a895d0805a912e00994957b46e81a2862a7..9e97f6eacc3476533f62f89bd0f6b945e6f14883 100644 (file)
       <varlistentry>
        <term><option>--csvout</option></term>
        <listitem>
-         <para>Sets CSV output format. See
+         <para>Sets CSV output format. For some commands the CSV output
+         contains more information than the default table output. See
          <link xlink:href="https://tools.ietf.org/html/rfc4180">RFC 4180</link>
          for the details, except lines end with a LF, not CR+LF.</para>
        </listitem>
       <varlistentry>
        <term><option>--jsonout</option></term>
        <listitem>
-         <para>Sets JSON output format.</para>
+         <para>Sets JSON output format. For some commands the JSON output
+         contains more information than the default table output.</para>
        </listitem>
       </varlistentry>
       <varlistentry>