Skip to content

Commit b1eeaee

Browse files
committed
Use argparse to parse CL args
1 parent e6be56f commit b1eeaee

1 file changed

Lines changed: 28 additions & 26 deletions

File tree

scripts/maec_4.0.1_to_4.1.py

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import sys
55
import os
66
import shutil
7+
import argparse
78
import maec
89
from maec.bundle.bundle import Bundle
910
from maec.package.package import Package
@@ -47,41 +48,42 @@ def usage():
4748
"""
4849

4950
def main():
50-
infilename = None
51-
outfilename = None
52-
directoryname = ''
53-
filepath = ''
54-
55-
#Get the command-line arguments
56-
args = sys.argv[1:]
57-
58-
if len(args) < 2:
59-
usage()
60-
sys.exit(1)
61-
62-
for i in range(0,len(args)):
63-
if args[i] == '-i':
64-
infilename = args[i+1]
65-
elif args[i] == '-o':
66-
outfilename = args[i+1]
67-
elif args[i] == '-d':
68-
directoryname = args[i+1]
51+
# Setup the argument parser
52+
parser = argparse.ArgumentParser(
53+
description='MAEC 4.0.1 --> MAEC 4.1 XML Converter Utility'
54+
)
55+
mutex_group = parser.add_mutually_exclusive_group()
56+
required_name = parser.add_argument_group('required arguments')
57+
mutex_group.add_argument(
58+
'--input', '-i',
59+
help='input maec 4.0.1 xml file'
60+
)
61+
mutex_group.add_argument(
62+
'--directory', '-d',
63+
help='directory containing maec 4.0.1 xml files to convert to 4.1 xml files'
64+
)
65+
required_name.add_argument(
66+
'--output', '-o', required=True,
67+
help='output maec 4.1 xml file'
68+
)
69+
70+
args = parser.parse_args()
6971

70-
if directoryname != '':
71-
for filename in os.listdir(directoryname):
72+
if args.directory:
73+
for filename in os.listdir(args.directory):
7274
print filename
7375
if '.xml' not in filename:
7476
pass
7577
elif '_report.maec-4.0.1' not in filename:
76-
update_maec(os.path.join(directoryname, filename), filename.rstrip('.xml') + '_cuckoobox_maec.xml')
78+
update_maec(os.path.join(args.directory, filename), filename.rstrip('.xml') + '_cuckoobox_maec.xml')
7779
else:
78-
new_filepath = os.path.join(directoryname, filename.replace('_report.maec-4.0.1', ''))
79-
shutil.move(os.path.join(directoryname, filename), new_filepath)
80+
new_filepath = os.path.join(args.directory, filename.replace('_report.maec-4.0.1', ''))
81+
shutil.move(os.path.join(args.directory, filename), new_filepath)
8082
update_maec(new_filepath, new_filepath.rstrip('.xml') + '_cuckoobox_maec.xml')
8183

8284
# Basic parameter checking
83-
elif infilename and outfilename:
84-
update_maec(infilename, outfilename)
85+
elif args.input and args.output:
86+
update_maec(args.input, args.output)
8587

8688
if __name__ == "__main__":
8789
main()

0 commit comments

Comments
 (0)