X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Tools%2FDiskTool%2Fsrc%2Factions.c;h=665a595727f447c3fd47c57d4c05cfe244581e93;hb=054944599253e2ffff5c7153f2cee1bb275efcfd;hp=e63ae612c8b5e44d1e828733ed28886facf27655;hpb=48025ef1ac8dd0445bc6a07fbc6c1ac9cb07991e;p=tpg%2Facess2.git diff --git a/Tools/DiskTool/src/actions.c b/Tools/DiskTool/src/actions.c index e63ae612..665a5957 100644 --- a/Tools/DiskTool/src/actions.c +++ b/Tools/DiskTool/src/actions.c @@ -151,6 +151,29 @@ int DiskTool_ListDirectory(const char *Directory) return 0; } +int DiskTool_Cat(const char *File) +{ + int src = DiskTool_int_TranslateOpen(File, VFS_OPENFLAG_READ); + if( src == -1 ) { + Log_Error("DiskTool", "Unable to open %s for reading", File); + return -1; + } + + char buf[1024]; + size_t len, total = 0; + while( (len = VFS_Read(src, sizeof(buf), buf)) == sizeof(buf) ) { + _fwrite_stdout(len, buf); + total += len; + } + _fwrite_stdout(len, buf); + total += len; + + Log_Notice("DiskTool", "%i bytes from %s", total, File); + + VFS_Close(src); + return 0; +} + int DiskTool_LVM_Read(void *Handle, Uint64 Block, size_t BlockCount, void *Dest) { return VFS_ReadAt( (int)(tVAddr)Handle, Block*512, BlockCount*512, Dest) / 512;