File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # merge_packages script
2+ # v0.10 BETA
3+ # Merges two or more MAEC Package documents (.xml files)
4+ # Attempts to merge related Malware Subjects
5+ import sys
6+ import os
7+ import maec
8+ from maec .utils .merge import merge_documents
9+
10+ USAGE_TEXT = """
11+ MAEC Package Merge Script v0.10 BETA
12+ *Merges two or more MAEC Package XML documents
13+ *Attempts to merge related (e.g., same MD5 hash) Malware Subjects
14+
15+ Usage: python merge_packages.py -o <output file name> -l <single whitespace separated list of MAEC Package files> OR -d <directory name>
16+ """
17+
18+ def main ():
19+ infilenames = []
20+ list_mode = False
21+ directoryname = ''
22+ outfilename = ''
23+
24+ #Get the command-line arguments
25+ args = sys .argv [1 :]
26+
27+ if len (args ) < 3 :
28+ print USAGE_TEXT
29+ sys .exit (1 )
30+
31+ for i in range (0 ,len (args )):
32+ if args [i ] == '-o' :
33+ outfilename = args [i + 1 ]
34+ elif args [i ] == '-l' :
35+ list_mode = True
36+ elif args [i ] == '-d' :
37+ directoryname = args [i + 1 ]
38+
39+ if outfilename == '' :
40+ print USAGE_TEXT
41+ sys .exit (1 )
42+
43+ sys .stdout .write ("Merging..." )
44+ # Get the list of input files and perform the merge operation
45+ if list_mode :
46+ files = args [3 :]
47+ merge_documents (files , outfilename )
48+ elif directoryname != '' :
49+ file_list = []
50+ for filename in os .listdir (directoryname ):
51+ if '.xml' not in filename :
52+ pass
53+ else :
54+ file_list .append (os .path .join (directoryname , filename ))
55+ merge_documents (file_list , outfilename )
56+ sys .stdout .write ("Done." )
57+
58+ if __name__ == "__main__" :
59+ main ()
You can’t perform that action at this time.
0 commit comments