aboutsummaryrefslogtreecommitdiffstats
path: root/dump_chunkfile.py
blob: 64b1af93f2467bfb803c3de069c7e2ed8473a8da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env python

import FuseArchive.ChunkFile, sys, re, os, logging

#log_level = logging.DEBUG
log_level = logging.WARNING
logging.basicConfig( level = log_level,
                    format = '%(asctime)s %(levelname)s %(filename)s:%(lineno)d %(module)s:%(funcName)s() %(message)s',
                    stream = sys.stderr,
                    filemode = 'w' )

# Run this in the storage area, basically 'cat' the file
file = re.sub( '^.*?tree', '', sys.argv[ 1 ] )
sys.stderr.write( "Opening file: %s\n" % file )

f = FuseArchive.ChunkFile.ChunkFile( file, os.O_RDONLY, 0 )

sys.stderr.write( "File is: %d bytes\n" % f.size )
sys.stderr.write( "File has %d chunks\n" % len( f.chunks ) )

offset = 0
blocksize = 4096
while offset <= f.size:
    data = f.read( blocksize, offset )
    sys.stdout.write( data )
    offset += blocksize