1717#include <stdio.h>
1818#include <stdlib.h>
1919
20+ static void printPackInfoHelp ()
21+ {
22+ printf ("Usage: pack-info <pack-path>\n" );
23+ }
24+
2025int main (int argc , char * argv [])
2126{
2227 if (argc != 2 )
2328 {
24- printf ( "Usage: pack-info <pack-path>\n" );
29+ printPackInfoHelp ( );
2530 return EXIT_FAILURE ;
2631 }
2732
@@ -34,8 +39,8 @@ int main(int argc, char *argv[])
3439 return EXIT_FAILURE ;
3540 }
3641
37- printf ("Pack [v%d.%d.%d]\n\n"
38- "Pack information :\n"
42+ printf ("pack-info [v%d.%d.%d]\n\n"
43+ "Pack header :\n"
3944 " File version: %d.%d.%d\n"
4045 " Data version: %u\n"
4146 " Big endian: %s\n"
@@ -47,30 +52,35 @@ int main(int argc, char *argv[])
4752 (long long unsigned int )header .itemCount );
4853
4954 PackReader packReader ;
50- result = createFilePackReader (argv [1 ], 0 , false, header . dataVersion , & packReader );
55+ result = createFilePackReader (argv [1 ], header . dataVersion , false, 1 , & packReader );
5156 if (result != SUCCESS_PACK_RESULT )
5257 {
5358 printf ("\nError: %s.\n" , packResultToString (result ));
5459 return EXIT_FAILURE ;
5560 }
5661
5762 uint64_t itemCount = getPackItemCount (packReader );
63+ uint64_t totalDataSize = 0 , totalZipSize = 0 ;
64+
5865 for (uint64_t i = 0 ; i < itemCount ; ++ i )
5966 {
67+ uint32_t dataSize = getPackItemDataSize (packReader , i );
68+ uint32_t zipSize = getPackItemZipSize (packReader , i );
69+ totalDataSize += dataSize ; totalZipSize += zipSize ;
70+
6071 printf ("Item %llu:\n"
6172 " Path: %s\n"
62- " Data size: %u\n"
63- " Zip size: %u\n"
64- " File offset: %llu\n"
65- " Reference: %s\n" ,
66- (long long unsigned int )i ,
67- getPackItemPath (packReader , i ),
68- getPackItemDataSize (packReader , i ),
69- getPackItemZipSize (packReader , i ),
70- (long long unsigned int )getPackItemFileOffset (packReader , i ),
73+ " Data size: %u bytes\n"
74+ " Zip size: %u bytes\n"
75+ " File offset: %llu bytes\n"
76+ " Is reference: %s\n" ,
77+ (long long unsigned int )i , getPackItemPath (packReader , i ), dataSize ,
78+ zipSize , (long long unsigned int )getPackItemFileOffset (packReader , i ),
7179 isPackItemReference (packReader , i ) ? "true" : "false" );
7280 fflush (stdout );
7381 }
7482
83+ printf ("\nTotal zip/data size: %llu/%llu bytes.\n" ,
84+ (long long unsigned int )totalZipSize , (long long unsigned int )totalDataSize );
7585 return EXIT_SUCCESS ;
7686}
0 commit comments