mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-04-15 11:36:40 +02:00
Add ls command.
Allows listing repo paths/files from the command-line, to be used primarily for testing and debugging. This command is internal-only so the interface may change at any time without notice.
This commit is contained in:
parent
3b3327eae6
commit
20e5b92f36
@ -108,6 +108,8 @@ use constant CFGCMD_START => 'start';
|
||||
push @EXPORT, qw(CFGCMD_START);
|
||||
use constant CFGCMD_STOP => 'stop';
|
||||
push @EXPORT, qw(CFGCMD_STOP);
|
||||
use constant CFGCMD_STORAGE_LIST => 'ls';
|
||||
push @EXPORT, qw(CFGCMD_STORAGE_LIST);
|
||||
use constant CFGCMD_VERSION => 'version';
|
||||
push @EXPORT, qw(CFGCMD_VERSION);
|
||||
|
||||
@ -157,6 +159,13 @@ use constant CFGOPT_PROCESS => 'process'
|
||||
use constant CFGOPT_HOST_ID => 'host-id';
|
||||
push @EXPORT, qw(CFGOPT_HOST_ID);
|
||||
|
||||
# Command-line only storage options
|
||||
#-----------------------------------------------------------------------------------------------------------------------------------
|
||||
use constant CFGOPT_FILTER => 'filter';
|
||||
push @EXPORT, qw(CFGOPT_FILTER);
|
||||
use constant CFGOPT_SORT => 'sort';
|
||||
push @EXPORT, qw(CFGOPT_SORT);
|
||||
|
||||
# Command-line only test options
|
||||
#-----------------------------------------------------------------------------------------------------------------------------------
|
||||
use constant CFGOPT_TEST => 'test';
|
||||
@ -681,6 +690,13 @@ my $rhCommandDefine =
|
||||
{
|
||||
},
|
||||
|
||||
&CFGCMD_STORAGE_LIST =>
|
||||
{
|
||||
&CFGDEF_LOG_FILE => false,
|
||||
&CFGDEF_LOG_LEVEL_DEFAULT => DEBUG,
|
||||
&CFGDEF_PARAMETER_ALLOWED => true,
|
||||
},
|
||||
|
||||
&CFGCMD_VERSION =>
|
||||
{
|
||||
&CFGDEF_LOG_FILE => false,
|
||||
@ -718,6 +734,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_START => {},
|
||||
&CFGCMD_STOP => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
}
|
||||
},
|
||||
|
||||
@ -1049,6 +1066,33 @@ my %hConfigDefine =
|
||||
},
|
||||
},
|
||||
|
||||
# Command-line only storage options
|
||||
#-------------------------------------------------------------------------------------------------------------------------------
|
||||
&CFGOPT_FILTER =>
|
||||
{
|
||||
&CFGDEF_TYPE => CFGDEF_TYPE_STRING,
|
||||
&CFGDEF_REQUIRED => false,
|
||||
&CFGDEF_COMMAND =>
|
||||
{
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
}
|
||||
},
|
||||
|
||||
&CFGOPT_SORT =>
|
||||
{
|
||||
&CFGDEF_TYPE => CFGDEF_TYPE_STRING,
|
||||
&CFGDEF_DEFAULT => 'asc',
|
||||
&CFGDEF_ALLOW_LIST =>
|
||||
[
|
||||
'asc',
|
||||
'desc',
|
||||
],
|
||||
&CFGDEF_COMMAND =>
|
||||
{
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
}
|
||||
},
|
||||
|
||||
# Command-line only test options
|
||||
#-------------------------------------------------------------------------------------------------------------------------------
|
||||
&CFGOPT_TEST =>
|
||||
@ -1138,6 +1182,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_CREATE => {},
|
||||
&CFGCMD_STANZA_DELETE => {},
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
}
|
||||
},
|
||||
|
||||
@ -1160,6 +1205,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_CREATE => {},
|
||||
&CFGCMD_STANZA_DELETE => {},
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
}
|
||||
},
|
||||
|
||||
@ -1261,6 +1307,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_START => {},
|
||||
&CFGCMD_STOP => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
}
|
||||
},
|
||||
|
||||
@ -1286,6 +1333,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_START => {},
|
||||
&CFGCMD_STOP => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
},
|
||||
},
|
||||
|
||||
@ -1337,6 +1385,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_START => {},
|
||||
&CFGCMD_STOP => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
},
|
||||
},
|
||||
|
||||
@ -1387,6 +1436,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_CREATE => {},
|
||||
&CFGCMD_STANZA_DELETE => {},
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
}
|
||||
},
|
||||
|
||||
@ -1491,6 +1541,7 @@ my %hConfigDefine =
|
||||
},
|
||||
&CFGCMD_START => {},
|
||||
&CFGCMD_STOP => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
},
|
||||
},
|
||||
|
||||
@ -1517,6 +1568,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_RESTORE => {},
|
||||
&CFGCMD_START => {},
|
||||
&CFGCMD_STOP => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
},
|
||||
&CFGDEF_DEPEND =>
|
||||
{
|
||||
@ -1767,6 +1819,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_START => {},
|
||||
&CFGCMD_STOP => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
},
|
||||
},
|
||||
|
||||
@ -1870,6 +1923,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_START => {},
|
||||
&CFGCMD_STOP => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
},
|
||||
},
|
||||
|
||||
@ -1952,6 +2006,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_START => {},
|
||||
&CFGCMD_STOP => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
}
|
||||
},
|
||||
|
||||
@ -1985,6 +2040,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_START => {},
|
||||
&CFGCMD_STOP => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
}
|
||||
},
|
||||
|
||||
@ -2012,6 +2068,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_START => {},
|
||||
&CFGCMD_STOP => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
}
|
||||
},
|
||||
|
||||
@ -2038,6 +2095,7 @@ my %hConfigDefine =
|
||||
&CFGCMD_STANZA_UPGRADE => {},
|
||||
&CFGCMD_START => {},
|
||||
&CFGCMD_STOP => {},
|
||||
&CFGCMD_STORAGE_LIST => {},
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -196,7 +196,7 @@ sub process
|
||||
foreach my $strCommand (cfgDefineCommandList())
|
||||
{
|
||||
if ($strCommand eq CFGCMD_REMOTE || $strCommand eq CFGCMD_LOCAL || $strCommand eq CFGCMD_ARCHIVE_GET_ASYNC ||
|
||||
$strCommand eq CFGCMD_ARCHIVE_PUSH_ASYNC)
|
||||
$strCommand eq CFGCMD_ARCHIVE_PUSH_ASYNC || $strCommand eq CFGCMD_STORAGE_LIST)
|
||||
{
|
||||
next;
|
||||
}
|
||||
|
@ -1218,6 +1218,23 @@
|
||||
</command-example-list>
|
||||
</command>
|
||||
|
||||
<!-- OPERATION - STORAGE-LIST COMMAND -->
|
||||
<command id="storage-list" name="Storage List">
|
||||
<summary>List paths/files in the repository.</summary>
|
||||
|
||||
<text>This is intended to be a general purpose list function, but for now it only works on the repository.</text>
|
||||
|
||||
<command-example-list>
|
||||
<command-example title="List all backups in a stanza">
|
||||
<text><code-block title="">
|
||||
{[backrest-exe]} storage-list backup/demo
|
||||
</code-block>
|
||||
|
||||
List all backups in the demo stanza.</text>
|
||||
</command-example>
|
||||
</command-example-list>
|
||||
</command>
|
||||
|
||||
<!-- OPERATION - VERSION COMMAND -->
|
||||
<command id="version" name="Version">
|
||||
<summary>Get version.</summary>
|
||||
|
@ -182,7 +182,7 @@
|
||||
<variable key="host-repo1-mount">{[host-mount]}</variable>
|
||||
|
||||
<!-- Commands for various operations -->
|
||||
<variable key="cmd-backup-last">ls -1 {[backrest-repo-path]}/backup/demo | tail -5 | head -1</variable>
|
||||
<variable key="cmd-backup-last">pgbackrest ls backup/demo --filter="(F|D|I)$" --sort=desc | head -1</variable>
|
||||
|
||||
<!-- Data used to demonstrate backup/restore operations -->
|
||||
<variable key="test-table-data">Important Data</variable>
|
||||
|
@ -25,6 +25,9 @@ sub libcAutoConstant
|
||||
CFGOPTVAL_REPO_TYPE_POSIX => 'posix',
|
||||
CFGOPTVAL_REPO_TYPE_S3 => 's3',
|
||||
|
||||
CFGOPTVAL_SORT_ASC => 'asc',
|
||||
CFGOPTVAL_SORT_DESC => 'desc',
|
||||
|
||||
CFGOPTVAL_RESTORE_TARGET_ACTION_PAUSE => 'pause',
|
||||
CFGOPTVAL_RESTORE_TARGET_ACTION_PROMOTE => 'promote',
|
||||
CFGOPTVAL_RESTORE_TARGET_ACTION_SHUTDOWN => 'shutdown',
|
||||
@ -87,6 +90,8 @@ sub libcAutoExportTag
|
||||
'CFGOPTVAL_REPO_TYPE_CIFS',
|
||||
'CFGOPTVAL_REPO_TYPE_POSIX',
|
||||
'CFGOPTVAL_REPO_TYPE_S3',
|
||||
'CFGOPTVAL_SORT_ASC',
|
||||
'CFGOPTVAL_SORT_DESC',
|
||||
'CFGOPTVAL_RESTORE_TARGET_ACTION_PAUSE',
|
||||
'CFGOPTVAL_RESTORE_TARGET_ACTION_PROMOTE',
|
||||
'CFGOPTVAL_RESTORE_TARGET_ACTION_SHUTDOWN',
|
||||
@ -114,6 +119,7 @@ sub libcAutoExportTag
|
||||
'CFGCMD_HELP',
|
||||
'CFGCMD_INFO',
|
||||
'CFGCMD_LOCAL',
|
||||
'CFGCMD_LS',
|
||||
'CFGCMD_REMOTE',
|
||||
'CFGCMD_RESTORE',
|
||||
'CFGCMD_STANZA_CREATE',
|
||||
@ -144,6 +150,7 @@ sub libcAutoExportTag
|
||||
'CFGOPT_DB_TIMEOUT',
|
||||
'CFGOPT_DELTA',
|
||||
'CFGOPT_EXCLUDE',
|
||||
'CFGOPT_FILTER',
|
||||
'CFGOPT_FORCE',
|
||||
'CFGOPT_HOST_ID',
|
||||
'CFGOPT_LINK_ALL',
|
||||
@ -272,6 +279,7 @@ sub libcAutoExportTag
|
||||
'CFGOPT_REPO_TYPE',
|
||||
'CFGOPT_RESUME',
|
||||
'CFGOPT_SET',
|
||||
'CFGOPT_SORT',
|
||||
'CFGOPT_SPOOL_PATH',
|
||||
'CFGOPT_STANZA',
|
||||
'CFGOPT_START_FAST',
|
||||
|
@ -58,6 +58,7 @@ SRCS = \
|
||||
command/restore/file.c \
|
||||
command/restore/protocol.c \
|
||||
command/remote/remote.c \
|
||||
command/storage/list.c \
|
||||
common/compress/gzip/common.c \
|
||||
common/compress/gzip/compress.c \
|
||||
common/compress/gzip/decompress.c \
|
||||
@ -236,6 +237,9 @@ command/restore/file.o: command/restore/file.c build.auto.h command/restore/file
|
||||
command/restore/protocol.o: command/restore/protocol.c build.auto.h command/restore/file.h command/restore/protocol.h common/assert.h common/crypto/common.h common/debug.h common/error.auto.h common/error.h common/io/filter/filter.h common/io/filter/group.h common/io/io.h common/io/read.h common/io/write.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/time.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h protocol/server.h storage/helper.h storage/info.h storage/read.h storage/storage.h storage/write.h
|
||||
$(CC) $(CFLAGS) $(CMAKE) -c command/restore/protocol.c -o command/restore/protocol.o
|
||||
|
||||
command/storage/list.o: command/storage/list.c build.auto.h common/assert.h common/debug.h common/error.auto.h common/error.h common/io/filter/filter.h common/io/filter/group.h common/io/handleWrite.h common/io/read.h common/io/write.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/time.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h storage/helper.h storage/info.h storage/read.h storage/storage.h storage/write.h
|
||||
$(CC) $(CFLAGS) $(CMAKE) -c command/storage/list.c -o command/storage/list.o
|
||||
|
||||
common/compress/gzip/common.o: common/compress/gzip/common.c build.auto.h common/assert.h common/compress/gzip/common.h common/debug.h common/error.auto.h common/error.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/convert.h
|
||||
$(CC) $(CFLAGS) $(CMAKE) -c common/compress/gzip/common.c -o common/compress/gzip/common.o
|
||||
|
||||
@ -410,7 +414,7 @@ info/infoManifest.o: info/infoManifest.c build.auto.h common/error.auto.h common
|
||||
info/infoPg.o: info/infoPg.c build.auto.h common/assert.h common/crypto/common.h common/debug.h common/error.auto.h common/error.h common/ini.h common/io/filter/filter.h common/io/filter/group.h common/io/read.h common/io/write.h common/log.h common/logLevel.h common/macro.h common/memContext.h common/object.h common/stackTrace.h common/time.h common/type/buffer.h common/type/convert.h common/type/json.h common/type/keyValue.h common/type/list.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h info/info.h info/infoPg.h postgres/interface.h postgres/version.h storage/helper.h storage/info.h storage/read.h storage/storage.h storage/write.h
|
||||
$(CC) $(CFLAGS) $(CMAKE) -c info/infoPg.c -o info/infoPg.o
|
||||
|
||||
main.o: main.c build.auto.h command/archive/get/get.h command/archive/push/push.h command/command.h command/help/help.h command/info/info.h command/local/local.h command/remote/remote.h common/assert.h common/debug.h common/error.auto.h common/error.h common/exit.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/time.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h config/load.h perl/exec.h postgres/interface.h version.h
|
||||
main.o: main.c build.auto.h command/archive/get/get.h command/archive/push/push.h command/command.h command/help/help.h command/info/info.h command/local/local.h command/remote/remote.h command/storage/list.h common/assert.h common/debug.h common/error.auto.h common/error.h common/exit.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/time.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h config/load.h perl/exec.h postgres/interface.h version.h
|
||||
$(CC) $(CFLAGS) $(CMAKE) -c main.c -o main.o
|
||||
|
||||
perl/config.o: perl/config.c build.auto.h common/assert.h common/debug.h common/error.auto.h common/error.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/time.h common/type/buffer.h common/type/convert.h common/type/json.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h
|
||||
|
64
src/command/storage/list.c
Normal file
64
src/command/storage/list.c
Normal file
@ -0,0 +1,64 @@
|
||||
/***********************************************************************************************************************************
|
||||
Storage List Command
|
||||
***********************************************************************************************************************************/
|
||||
#include "build.auto.h"
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
#include "common/debug.h"
|
||||
#include "common/io/handleWrite.h"
|
||||
#include "common/memContext.h"
|
||||
#include "common/log.h"
|
||||
#include "common/memContext.h"
|
||||
#include "common/type/string.h"
|
||||
#include "config/config.h"
|
||||
#include "storage/helper.h"
|
||||
|
||||
/***********************************************************************************************************************************
|
||||
Render storage list as a string
|
||||
***********************************************************************************************************************************/
|
||||
static String *
|
||||
storageListRender(void)
|
||||
{
|
||||
FUNCTION_LOG_VOID(logLevelDebug);
|
||||
|
||||
// Get the path if passed
|
||||
const String *path = NULL;
|
||||
|
||||
if (strLstSize(cfgCommandParam()) == 1)
|
||||
path = strLstGet(cfgCommandParam(), 0);
|
||||
|
||||
// Output the list
|
||||
String *result = strNew("");
|
||||
StringList *list = storageListP(storageRepo(), path, .nullOnMissing = true, .expression = cfgOptionStr(cfgOptFilter));
|
||||
|
||||
if (list != NULL)
|
||||
{
|
||||
strLstSort(list, strEqZ(cfgOptionStr(cfgOptSort), "asc") ? sortOrderAsc : sortOrderDesc);
|
||||
|
||||
for (unsigned int listIdx = 0; listIdx < strLstSize(list); listIdx++)
|
||||
{
|
||||
strCat(result, strPtr(strLstGet(list, listIdx)));
|
||||
strCat(result, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
FUNCTION_LOG_RETURN(STRING, result);
|
||||
}
|
||||
|
||||
/***********************************************************************************************************************************
|
||||
Render storage list and output to stdout
|
||||
***********************************************************************************************************************************/
|
||||
void
|
||||
cmdStorageList(void)
|
||||
{
|
||||
FUNCTION_LOG_VOID(logLevelDebug);
|
||||
|
||||
MEM_CONTEXT_TEMP_BEGIN()
|
||||
{
|
||||
ioHandleWriteOneStr(STDOUT_FILENO, storageListRender());
|
||||
}
|
||||
MEM_CONTEXT_TEMP_END();
|
||||
|
||||
FUNCTION_LOG_RETURN_VOID();
|
||||
}
|
12
src/command/storage/list.h
Normal file
12
src/command/storage/list.h
Normal file
@ -0,0 +1,12 @@
|
||||
/***********************************************************************************************************************************
|
||||
Storage List Command
|
||||
***********************************************************************************************************************************/
|
||||
#ifndef COMMAND_STORAGE_LIST_H
|
||||
#define COMMAND_STORAGE_LIST_H
|
||||
|
||||
/***********************************************************************************************************************************
|
||||
Functions
|
||||
***********************************************************************************************************************************/
|
||||
void cmdStorageList(void);
|
||||
|
||||
#endif
|
@ -17,6 +17,7 @@ STRING_EXTERN(CFGCMD_EXPIRE_STR, CFGCMD_EXPIR
|
||||
STRING_EXTERN(CFGCMD_HELP_STR, CFGCMD_HELP);
|
||||
STRING_EXTERN(CFGCMD_INFO_STR, CFGCMD_INFO);
|
||||
STRING_EXTERN(CFGCMD_LOCAL_STR, CFGCMD_LOCAL);
|
||||
STRING_EXTERN(CFGCMD_LS_STR, CFGCMD_LS);
|
||||
STRING_EXTERN(CFGCMD_REMOTE_STR, CFGCMD_REMOTE);
|
||||
STRING_EXTERN(CFGCMD_RESTORE_STR, CFGCMD_RESTORE);
|
||||
STRING_EXTERN(CFGCMD_STANZA_CREATE_STR, CFGCMD_STANZA_CREATE);
|
||||
@ -161,6 +162,19 @@ static ConfigCommandData configCommandData[CFG_COMMAND_TOTAL] = CONFIG_COMMAND_L
|
||||
CONFIG_COMMAND_PARAMETER_ALLOWED(false)
|
||||
)
|
||||
|
||||
CONFIG_COMMAND
|
||||
(
|
||||
CONFIG_COMMAND_NAME(CFGCMD_LS)
|
||||
|
||||
CONFIG_COMMAND_LOG_FILE(false)
|
||||
CONFIG_COMMAND_LOG_LEVEL_DEFAULT(logLevelDebug)
|
||||
CONFIG_COMMAND_LOG_LEVEL_STDERR_MAX(logLevelTrace)
|
||||
CONFIG_COMMAND_LOCK_REQUIRED(false)
|
||||
CONFIG_COMMAND_LOCK_REMOTE_REQUIRED(false)
|
||||
CONFIG_COMMAND_LOCK_TYPE(lockTypeNone)
|
||||
CONFIG_COMMAND_PARAMETER_ALLOWED(true)
|
||||
)
|
||||
|
||||
CONFIG_COMMAND
|
||||
(
|
||||
CONFIG_COMMAND_NAME(CFGCMD_REMOTE)
|
||||
@ -291,6 +305,7 @@ STRING_EXTERN(CFGOPT_DB_INCLUDE_STR, CFGOPT_DB_IN
|
||||
STRING_EXTERN(CFGOPT_DB_TIMEOUT_STR, CFGOPT_DB_TIMEOUT);
|
||||
STRING_EXTERN(CFGOPT_DELTA_STR, CFGOPT_DELTA);
|
||||
STRING_EXTERN(CFGOPT_EXCLUDE_STR, CFGOPT_EXCLUDE);
|
||||
STRING_EXTERN(CFGOPT_FILTER_STR, CFGOPT_FILTER);
|
||||
STRING_EXTERN(CFGOPT_FORCE_STR, CFGOPT_FORCE);
|
||||
STRING_EXTERN(CFGOPT_HOST_ID_STR, CFGOPT_HOST_ID);
|
||||
STRING_EXTERN(CFGOPT_LINK_ALL_STR, CFGOPT_LINK_ALL);
|
||||
@ -419,6 +434,7 @@ STRING_EXTERN(CFGOPT_REPO1_S3_VERIFY_TLS_STR, CFGOPT_REPO1
|
||||
STRING_EXTERN(CFGOPT_REPO1_TYPE_STR, CFGOPT_REPO1_TYPE);
|
||||
STRING_EXTERN(CFGOPT_RESUME_STR, CFGOPT_RESUME);
|
||||
STRING_EXTERN(CFGOPT_SET_STR, CFGOPT_SET);
|
||||
STRING_EXTERN(CFGOPT_SORT_STR, CFGOPT_SORT);
|
||||
STRING_EXTERN(CFGOPT_SPOOL_PATH_STR, CFGOPT_SPOOL_PATH);
|
||||
STRING_EXTERN(CFGOPT_STANZA_STR, CFGOPT_STANZA);
|
||||
STRING_EXTERN(CFGOPT_START_FAST_STR, CFGOPT_START_FAST);
|
||||
@ -615,6 +631,14 @@ static ConfigOptionData configOptionData[CFG_OPTION_TOTAL] = CONFIG_OPTION_LIST
|
||||
CONFIG_OPTION_DEFINE_ID(cfgDefOptExclude)
|
||||
)
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
CONFIG_OPTION
|
||||
(
|
||||
CONFIG_OPTION_NAME(CFGOPT_FILTER)
|
||||
CONFIG_OPTION_INDEX(0)
|
||||
CONFIG_OPTION_DEFINE_ID(cfgDefOptFilter)
|
||||
)
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
CONFIG_OPTION
|
||||
(
|
||||
@ -1639,6 +1663,14 @@ static ConfigOptionData configOptionData[CFG_OPTION_TOTAL] = CONFIG_OPTION_LIST
|
||||
CONFIG_OPTION_DEFINE_ID(cfgDefOptSet)
|
||||
)
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
CONFIG_OPTION
|
||||
(
|
||||
CONFIG_OPTION_NAME(CFGOPT_SORT)
|
||||
CONFIG_OPTION_INDEX(0)
|
||||
CONFIG_OPTION_DEFINE_ID(cfgDefOptSort)
|
||||
)
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
CONFIG_OPTION
|
||||
(
|
||||
|
@ -29,6 +29,8 @@ Command constants
|
||||
STRING_DECLARE(CFGCMD_INFO_STR);
|
||||
#define CFGCMD_LOCAL "local"
|
||||
STRING_DECLARE(CFGCMD_LOCAL_STR);
|
||||
#define CFGCMD_LS "ls"
|
||||
STRING_DECLARE(CFGCMD_LS_STR);
|
||||
#define CFGCMD_REMOTE "remote"
|
||||
STRING_DECLARE(CFGCMD_REMOTE_STR);
|
||||
#define CFGCMD_RESTORE "restore"
|
||||
@ -46,7 +48,7 @@ Command constants
|
||||
#define CFGCMD_VERSION "version"
|
||||
STRING_DECLARE(CFGCMD_VERSION_STR);
|
||||
|
||||
#define CFG_COMMAND_TOTAL 19
|
||||
#define CFG_COMMAND_TOTAL 20
|
||||
|
||||
/***********************************************************************************************************************************
|
||||
Option constants
|
||||
@ -95,6 +97,8 @@ Option constants
|
||||
STRING_DECLARE(CFGOPT_DELTA_STR);
|
||||
#define CFGOPT_EXCLUDE "exclude"
|
||||
STRING_DECLARE(CFGOPT_EXCLUDE_STR);
|
||||
#define CFGOPT_FILTER "filter"
|
||||
STRING_DECLARE(CFGOPT_FILTER_STR);
|
||||
#define CFGOPT_FORCE "force"
|
||||
STRING_DECLARE(CFGOPT_FORCE_STR);
|
||||
#define CFGOPT_HOST_ID "host-id"
|
||||
@ -351,6 +355,8 @@ Option constants
|
||||
STRING_DECLARE(CFGOPT_RESUME_STR);
|
||||
#define CFGOPT_SET "set"
|
||||
STRING_DECLARE(CFGOPT_SET_STR);
|
||||
#define CFGOPT_SORT "sort"
|
||||
STRING_DECLARE(CFGOPT_SORT_STR);
|
||||
#define CFGOPT_SPOOL_PATH "spool-path"
|
||||
STRING_DECLARE(CFGOPT_SPOOL_PATH_STR);
|
||||
#define CFGOPT_STANZA "stanza"
|
||||
@ -380,7 +386,7 @@ Option constants
|
||||
#define CFGOPT_TYPE "type"
|
||||
STRING_DECLARE(CFGOPT_TYPE_STR);
|
||||
|
||||
#define CFG_OPTION_TOTAL 164
|
||||
#define CFG_OPTION_TOTAL 166
|
||||
|
||||
/***********************************************************************************************************************************
|
||||
Command enum
|
||||
@ -397,6 +403,7 @@ typedef enum
|
||||
cfgCmdHelp,
|
||||
cfgCmdInfo,
|
||||
cfgCmdLocal,
|
||||
cfgCmdLs,
|
||||
cfgCmdRemote,
|
||||
cfgCmdRestore,
|
||||
cfgCmdStanzaCreate,
|
||||
@ -435,6 +442,7 @@ typedef enum
|
||||
cfgOptDbTimeout,
|
||||
cfgOptDelta,
|
||||
cfgOptExclude,
|
||||
cfgOptFilter,
|
||||
cfgOptForce,
|
||||
cfgOptHostId,
|
||||
cfgOptLinkAll,
|
||||
@ -563,6 +571,7 @@ typedef enum
|
||||
cfgOptRepoType,
|
||||
cfgOptResume,
|
||||
cfgOptSet,
|
||||
cfgOptSort,
|
||||
cfgOptSpoolPath,
|
||||
cfgOptStanza,
|
||||
cfgOptStartFast,
|
||||
|
@ -120,6 +120,11 @@ static ConfigDefineCommandData configDefineCommandData[] = CFGDEFDATA_COMMAND_LI
|
||||
CFGDEFDATA_COMMAND_NAME("local")
|
||||
)
|
||||
|
||||
CFGDEFDATA_COMMAND
|
||||
(
|
||||
CFGDEFDATA_COMMAND_NAME("ls")
|
||||
)
|
||||
|
||||
CFGDEFDATA_COMMAND
|
||||
(
|
||||
CFGDEFDATA_COMMAND_NAME("remote")
|
||||
@ -542,6 +547,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -652,6 +658,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaDelete)
|
||||
@ -839,6 +846,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -885,6 +893,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -934,6 +943,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -1010,6 +1020,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdBackup)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdCheck)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaDelete)
|
||||
@ -1100,6 +1111,24 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
)
|
||||
)
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------------------
|
||||
CFGDEFDATA_OPTION
|
||||
(
|
||||
CFGDEFDATA_OPTION_NAME("filter")
|
||||
CFGDEFDATA_OPTION_REQUIRED(false)
|
||||
CFGDEFDATA_OPTION_SECTION(cfgDefSectionCommandLine)
|
||||
CFGDEFDATA_OPTION_TYPE(cfgDefOptTypeString)
|
||||
CFGDEFDATA_OPTION_INTERNAL(false)
|
||||
|
||||
CFGDEFDATA_OPTION_INDEX_TOTAL(1)
|
||||
CFGDEFDATA_OPTION_SECURE(false)
|
||||
|
||||
CFGDEFDATA_OPTION_COMMAND_LIST
|
||||
(
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
)
|
||||
)
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------------------
|
||||
CFGDEFDATA_OPTION
|
||||
(
|
||||
@ -1377,6 +1406,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdCheck)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaDelete)
|
||||
@ -1440,6 +1470,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -1521,6 +1552,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -1578,6 +1610,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -1623,6 +1656,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -1668,6 +1702,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdCheck)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaDelete)
|
||||
@ -1751,6 +1786,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdCheck)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -2508,6 +2544,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdCheck)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -2598,6 +2635,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -2654,6 +2692,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -2742,6 +2781,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaDelete)
|
||||
@ -2821,6 +2861,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdCheck)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStart)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStop)
|
||||
@ -2863,6 +2904,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdCheck)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStart)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStop)
|
||||
@ -2906,6 +2948,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdCheck)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStart)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStop)
|
||||
@ -2948,6 +2991,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdCheck)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStart)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStop)
|
||||
@ -2989,6 +3033,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdCheck)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStart)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStop)
|
||||
@ -3034,6 +3079,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdCheck)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStart)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStop)
|
||||
@ -3083,6 +3129,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -3290,6 +3337,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -3341,6 +3389,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -3392,6 +3441,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -3443,6 +3493,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -3494,6 +3545,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -3545,6 +3597,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -3610,6 +3663,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -3675,6 +3729,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -3726,6 +3781,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -3778,6 +3834,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -3835,6 +3892,7 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdExpire)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdInfo)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLocal)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRemote)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdRestore)
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate)
|
||||
@ -3925,6 +3983,35 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST
|
||||
)
|
||||
)
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------------------
|
||||
CFGDEFDATA_OPTION
|
||||
(
|
||||
CFGDEFDATA_OPTION_NAME("sort")
|
||||
CFGDEFDATA_OPTION_REQUIRED(true)
|
||||
CFGDEFDATA_OPTION_SECTION(cfgDefSectionCommandLine)
|
||||
CFGDEFDATA_OPTION_TYPE(cfgDefOptTypeString)
|
||||
CFGDEFDATA_OPTION_INTERNAL(false)
|
||||
|
||||
CFGDEFDATA_OPTION_INDEX_TOTAL(1)
|
||||
CFGDEFDATA_OPTION_SECURE(false)
|
||||
|
||||
CFGDEFDATA_OPTION_COMMAND_LIST
|
||||
(
|
||||
CFGDEFDATA_OPTION_COMMAND(cfgDefCmdLs)
|
||||
)
|
||||
|
||||
CFGDEFDATA_OPTION_OPTIONAL_LIST
|
||||
(
|
||||
CFGDEFDATA_OPTION_OPTIONAL_ALLOW_LIST
|
||||
(
|
||||
"asc",
|
||||
"desc"
|
||||
)
|
||||
|
||||
CFGDEFDATA_OPTION_OPTIONAL_DEFAULT("asc")
|
||||
)
|
||||
)
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------------------
|
||||
CFGDEFDATA_OPTION
|
||||
(
|
||||
|
@ -21,6 +21,7 @@ typedef enum
|
||||
cfgDefCmdHelp,
|
||||
cfgDefCmdInfo,
|
||||
cfgDefCmdLocal,
|
||||
cfgDefCmdLs,
|
||||
cfgDefCmdRemote,
|
||||
cfgDefCmdRestore,
|
||||
cfgDefCmdStanzaCreate,
|
||||
@ -73,6 +74,7 @@ typedef enum
|
||||
cfgDefOptDbTimeout,
|
||||
cfgDefOptDelta,
|
||||
cfgDefOptExclude,
|
||||
cfgDefOptFilter,
|
||||
cfgDefOptForce,
|
||||
cfgDefOptHostId,
|
||||
cfgDefOptLinkAll,
|
||||
@ -131,6 +133,7 @@ typedef enum
|
||||
cfgDefOptRepoType,
|
||||
cfgDefOptResume,
|
||||
cfgDefOptSet,
|
||||
cfgDefOptSort,
|
||||
cfgDefOptSpoolPath,
|
||||
cfgDefOptStanza,
|
||||
cfgDefOptStartFast,
|
||||
|
@ -55,7 +55,7 @@ typedef struct ConfigDefineOptionData
|
||||
unsigned int section:2; // Config section (e.g. global, stanza, cmd-line)
|
||||
bool required:1; // Is the option required?
|
||||
bool secure:1; // Does the option need to be redacted on logs and cmd-line?
|
||||
unsigned int commandValid:18; // Bitmap for commands that the option is valid for
|
||||
unsigned int commandValid:20; // Bitmap for commands that the option is valid for
|
||||
|
||||
const char *helpSection; // Classify the option
|
||||
const char *helpSummary; // Brief summary of the option
|
||||
|
@ -286,6 +286,14 @@ static const struct option optionList[] =
|
||||
.val = PARSE_OPTION_FLAG | PARSE_RESET_FLAG | cfgOptExclude,
|
||||
},
|
||||
|
||||
// filter option
|
||||
// -----------------------------------------------------------------------------------------------------------------------------
|
||||
{
|
||||
.name = CFGOPT_FILTER,
|
||||
.has_arg = required_argument,
|
||||
.val = PARSE_OPTION_FLAG | cfgOptFilter,
|
||||
},
|
||||
|
||||
// force option
|
||||
// -----------------------------------------------------------------------------------------------------------------------------
|
||||
{
|
||||
@ -2100,6 +2108,14 @@ static const struct option optionList[] =
|
||||
.val = PARSE_OPTION_FLAG | cfgOptSet,
|
||||
},
|
||||
|
||||
// sort option
|
||||
// -----------------------------------------------------------------------------------------------------------------------------
|
||||
{
|
||||
.name = CFGOPT_SORT,
|
||||
.has_arg = required_argument,
|
||||
.val = PARSE_OPTION_FLAG | cfgOptSort,
|
||||
},
|
||||
|
||||
// spool-path option
|
||||
// -----------------------------------------------------------------------------------------------------------------------------
|
||||
{
|
||||
@ -2267,6 +2283,7 @@ static const ConfigOption optionResolveOrder[] =
|
||||
cfgOptDbTimeout,
|
||||
cfgOptDelta,
|
||||
cfgOptExclude,
|
||||
cfgOptFilter,
|
||||
cfgOptHostId,
|
||||
cfgOptLinkAll,
|
||||
cfgOptLinkMap,
|
||||
@ -2382,6 +2399,7 @@ static const ConfigOption optionResolveOrder[] =
|
||||
cfgOptRepoType,
|
||||
cfgOptResume,
|
||||
cfgOptSet,
|
||||
cfgOptSort,
|
||||
cfgOptSpoolPath,
|
||||
cfgOptStartFast,
|
||||
cfgOptStopAuto,
|
||||
|
@ -14,6 +14,7 @@ Main
|
||||
#include "command/info/info.h"
|
||||
#include "command/local/local.h"
|
||||
#include "command/remote/remote.h"
|
||||
#include "command/storage/list.h"
|
||||
#include "common/debug.h"
|
||||
#include "common/error.h"
|
||||
#include "common/exit.h"
|
||||
@ -228,6 +229,14 @@ main(int argListSize, const char *argList[])
|
||||
break;
|
||||
}
|
||||
|
||||
// Storage list command
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
case cfgCmdLs:
|
||||
{
|
||||
cmdStorageList();
|
||||
break;
|
||||
}
|
||||
|
||||
// Display version
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
case cfgCmdVersion:
|
||||
|
@ -9334,6 +9334,9 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"CFGOPTVAL_REPO_TYPE_POSIX => 'posix',\n"
|
||||
"CFGOPTVAL_REPO_TYPE_S3 => 's3',\n"
|
||||
"\n"
|
||||
"CFGOPTVAL_SORT_ASC => 'asc',\n"
|
||||
"CFGOPTVAL_SORT_DESC => 'desc',\n"
|
||||
"\n"
|
||||
"CFGOPTVAL_RESTORE_TARGET_ACTION_PAUSE => 'pause',\n"
|
||||
"CFGOPTVAL_RESTORE_TARGET_ACTION_PROMOTE => 'promote',\n"
|
||||
"CFGOPTVAL_RESTORE_TARGET_ACTION_SHUTDOWN => 'shutdown',\n"
|
||||
@ -9395,6 +9398,8 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"'CFGOPTVAL_REPO_TYPE_CIFS',\n"
|
||||
"'CFGOPTVAL_REPO_TYPE_POSIX',\n"
|
||||
"'CFGOPTVAL_REPO_TYPE_S3',\n"
|
||||
"'CFGOPTVAL_SORT_ASC',\n"
|
||||
"'CFGOPTVAL_SORT_DESC',\n"
|
||||
"'CFGOPTVAL_RESTORE_TARGET_ACTION_PAUSE',\n"
|
||||
"'CFGOPTVAL_RESTORE_TARGET_ACTION_PROMOTE',\n"
|
||||
"'CFGOPTVAL_RESTORE_TARGET_ACTION_SHUTDOWN',\n"
|
||||
@ -9422,6 +9427,7 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"'CFGCMD_HELP',\n"
|
||||
"'CFGCMD_INFO',\n"
|
||||
"'CFGCMD_LOCAL',\n"
|
||||
"'CFGCMD_LS',\n"
|
||||
"'CFGCMD_REMOTE',\n"
|
||||
"'CFGCMD_RESTORE',\n"
|
||||
"'CFGCMD_STANZA_CREATE',\n"
|
||||
@ -9452,6 +9458,7 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"'CFGOPT_DB_TIMEOUT',\n"
|
||||
"'CFGOPT_DELTA',\n"
|
||||
"'CFGOPT_EXCLUDE',\n"
|
||||
"'CFGOPT_FILTER',\n"
|
||||
"'CFGOPT_FORCE',\n"
|
||||
"'CFGOPT_HOST_ID',\n"
|
||||
"'CFGOPT_LINK_ALL',\n"
|
||||
@ -9580,6 +9587,7 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"'CFGOPT_REPO_TYPE',\n"
|
||||
"'CFGOPT_RESUME',\n"
|
||||
"'CFGOPT_SET',\n"
|
||||
"'CFGOPT_SORT',\n"
|
||||
"'CFGOPT_SPOOL_PATH',\n"
|
||||
"'CFGOPT_STANZA',\n"
|
||||
"'CFGOPT_START_FAST',\n"
|
||||
|
@ -725,6 +725,13 @@ unit:
|
||||
command/restore/file: full
|
||||
command/restore/protocol: full
|
||||
|
||||
# ----------------------------------------------------------------------------------------------------------------------------
|
||||
- name: storage
|
||||
total: 1
|
||||
|
||||
coverage:
|
||||
command/storage/list: full
|
||||
|
||||
# ********************************************************************************************************************************
|
||||
- name: backup
|
||||
|
||||
|
71
test/src/module/command/storageTest.c
Normal file
71
test/src/module/command/storageTest.c
Normal file
@ -0,0 +1,71 @@
|
||||
/***********************************************************************************************************************************
|
||||
Test Storage Commands
|
||||
***********************************************************************************************************************************/
|
||||
#include "storage/posix/storage.h"
|
||||
|
||||
#include "common/harnessConfig.h"
|
||||
|
||||
/***********************************************************************************************************************************
|
||||
Test Run
|
||||
***********************************************************************************************************************************/
|
||||
void
|
||||
testRun(void)
|
||||
{
|
||||
FUNCTION_HARNESS_VOID();
|
||||
|
||||
// Create default storage object for testing
|
||||
Storage *storageTest = storagePosixNew(
|
||||
strNew(testPath()), STORAGE_MODE_FILE_DEFAULT, STORAGE_MODE_PATH_DEFAULT, true, NULL);
|
||||
|
||||
// *****************************************************************************************************************************
|
||||
if (testBegin("cmdStorageList() and storageListRender()"))
|
||||
{
|
||||
StringList *argList = strLstNew();
|
||||
strLstAddZ(argList, "pgbackrest");
|
||||
strLstAdd(argList, strNewFmt("--repo-path=%s/repo", testPath()));
|
||||
strLstAddZ(argList, "ls");
|
||||
harnessCfgLoad(strLstSize(argList), strLstPtr(argList));
|
||||
|
||||
TEST_RESULT_STR(strPtr(storageListRender()), "", "missing directory");
|
||||
|
||||
storagePathCreateNP(storageTest, strNew("repo"));
|
||||
TEST_RESULT_STR(strPtr(storageListRender()), "", "empty directory");
|
||||
|
||||
storagePathCreateNP(storageTest, strNew("repo/bbb"));
|
||||
storagePutNP(storageNewWriteNP(storageTest, strNew("repo/aaa")), NULL);
|
||||
TEST_RESULT_STR(strPtr(storageListRender()), "aaa\nbbb\n", "list files");
|
||||
|
||||
StringList *argListTmp = strLstDup(argList);
|
||||
strLstAddZ(argListTmp, "--filter=^aaa$");
|
||||
harnessCfgLoad(strLstSize(argListTmp), strLstPtr(argListTmp));
|
||||
TEST_RESULT_STR(strPtr(storageListRender()), "aaa\n", "list files with filter");
|
||||
|
||||
argListTmp = strLstDup(argList);
|
||||
strLstAddZ(argListTmp, "--sort=desc");
|
||||
harnessCfgLoad(strLstSize(argListTmp), strLstPtr(argListTmp));
|
||||
TEST_RESULT_STR(strPtr(storageListRender()), "bbb\naaa\n", "list files with filter and sort");
|
||||
|
||||
storagePutNP(storageNewWriteNP(storageTest, strNew("repo/bbb/ccc")), NULL);
|
||||
argListTmp = strLstDup(argList);
|
||||
strLstAddZ(argListTmp, "bbb");
|
||||
harnessCfgLoad(strLstSize(argListTmp), strLstPtr(argListTmp));
|
||||
TEST_RESULT_STR(strPtr(storageListRender()), "ccc\n", "list files");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
// Redirect stdout to a file
|
||||
int stdoutSave = dup(STDOUT_FILENO);
|
||||
String *stdoutFile = strNewFmt("%s/stdout.txt", testPath());
|
||||
|
||||
THROW_ON_SYS_ERROR(freopen(strPtr(stdoutFile), "w", stdout) == NULL, FileWriteError, "unable to reopen stdout");
|
||||
|
||||
// Not in a test wrapper to avoid writing to stdout
|
||||
cmdStorageList();
|
||||
|
||||
// Restore normal stdout
|
||||
dup2(stdoutSave, STDOUT_FILENO);
|
||||
|
||||
TEST_RESULT_STR(strPtr(strNewBuf(storageGetNP(storageNewReadNP(storageTest, stdoutFile)))), "ccc\n", " check text");
|
||||
}
|
||||
|
||||
FUNCTION_HARNESS_RESULT_VOID();
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user