test/run_storage: add command "stat"

This commit is contained in:
Max Kellermann 2019-12-22 19:54:31 +01:00
parent 9a577f8060
commit 7bfe6a3304

View File

@ -90,6 +90,29 @@ Ls(Storage &storage, const char *path)
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
static int
Stat(Storage &storage, const char *path)
{
const auto info = storage.GetInfo(path, false);
switch (info.type) {
case StorageFileInfo::Type::OTHER:
printf("other\n");
break;
case StorageFileInfo::Type::REGULAR:
printf("regular\n");
break;
case StorageFileInfo::Type::DIRECTORY:
printf("directory\n");
break;
}
printf("size: %llu\n", (unsigned long long)info.size);
return EXIT_SUCCESS;
}
int int
main(int argc, char **argv) main(int argc, char **argv)
try { try {
@ -117,6 +140,18 @@ try {
storage_uri); storage_uri);
return Ls(*storage, path); return Ls(*storage, path);
} else if (strcmp(command, "stat") == 0) {
if (argc != 4) {
fprintf(stderr, "Usage: run_storage stat URI PATH\n");
return EXIT_FAILURE;
}
const char *const path = argv[3];
auto storage = MakeStorage(io_thread.GetEventLoop(),
storage_uri);
return Stat(*storage, path);
} else { } else {
fprintf(stderr, "Unknown command\n"); fprintf(stderr, "Unknown command\n");
return EXIT_FAILURE; return EXIT_FAILURE;