File: metadata.py

package info (click to toggle)
libewf 20140816-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 20,940 kB
  • sloc: ansic: 347,781; sh: 8,203; cpp: 3,819; makefile: 2,096; yacc: 1,104; python: 439; lex: 394; sed: 16
file content (118 lines) | stat: -rwxr-xr-x 2,232 bytes parent folder | download | duplicates (8)
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#! /usr/bin/env python
#
# Python script to print the metadata in Expert Witness Compression format file(s) using pyewf
#
# Author:            Joachim Metz
# Creation date:     October 14, 2010
# Modification date: January 26, 2013
#

__author__    = "Joachim Metz"
__version__   = "20130126"
__date__      = "Jan 26, 2013"
__copyright__ = "Copyright (c) 2006-2013, Joachim Metz <joachim.metz@gmail.com>"
__license__   = "GNU LGPL version 3"

import sys
import pyewf

# ----------------------------------------------------------------------------
# Main
# ----------------------------------------------------------------------------

print "metadata.py " + __version__ + " (libewf " + pyewf.get_version() + ")\n"

argc = len( sys.argv )

if argc < 2:
	print "Usage: metadata.py filename(s)\n"

	sys.exit( 1 )

if argc == 2:
	try:
		filenames = pyewf.glob(
		             sys.argv[ 1 ] )

	except:
		print "Unable to glob filename(s)\n"
		print sys.exc_info()[ 1 ]

		sys.exit( 1 )
else:
	filenames = sys.argv[ 1: ]

handle = pyewf.handle();

if handle == None:
	print "Missing handle object\n"

	sys.exit( 1 )

try:
	# Open requires a list of filenames
	handle.open(
	 filenames )

except:
	print "Unable to open file(s)\n"
	print sys.exc_info()[ 1 ]

	sys.exit( 1 )

try:
	media_size = handle.get_media_size()

except:
	print "Unable to retrieve media size\n"
	print sys.exc_info()[ 1 ]

	sys.exit( 1 )

try:
	header_values = handle.get_header_values()

except:
	print "Unable to retrieve header values\n"
	print sys.exc_info()[ 1 ]

	sys.exit( 1 )

try:
	hash_values = handle.get_hash_values()

except:
	print "Unable to retrieve hash values\n"
	print sys.exc_info()[ 1 ]

	sys.exit( 1 )

try:
	handle.close()
except:
	print "Unable to close file(s)\n"
	print sys.exc_info()
 
	sys.exit( 1 )

print "Media size: " + str( media_size ) + " bytes"
print ""

if len( header_values ) > 0:
	print "Header values:"

	for identifier, value in header_values.items():
		print identifier.encode( "utf8" ) + ": " + value.encode( "utf8" )

	print ""

if len( hash_values ) > 0:
	print "Hash values:"

	for identifier, value in hash_values.items():
		print identifier.encode( "utf8" ) + ": " + value.encode( "utf8" )

	print ""

sys.exit( 0 )