in tools/stix-to-ecs/stix_to_ecs.py [0:0]
def get_options() -> Options | None:
parser = build_argument_parser()
args = parser.parse_args()
if args.recursive and not args.input.is_dir():
print("Flag -r can only be used if input is a directory")
parser.print_usage()
return None
elastic_info = None
if args.elastic:
if args.configuration:
tmp = {
k: (v if v else None)
for k, v in json.loads(args.configuration.read_text()).items()
}
elastic_info = ElasticInfo(
tmp["cloud_id"],
tmp["api_key"],
tmp["url"],
tmp["username"],
tmp["password"],
tmp["index"],
verify_certs=args.verify_certs,
)
else:
elastic_info = ElasticInfo(
args.cloud_id,
(
getpass.getpass(
"Please enter your API key to connect to the Elastic cluster\n"
)
if not args.username
else None
),
args.url,
args.username,
(
getpass.getpass(
"Please enter your password to connect to the Elastic cluster\n"
)
if args.username
else None
),
args.index,
args.verify_certs,
)
if msg := elastic_info.check():
print(msg)
parser.print_usage()
return None
return Options(args.input, args.output, args.recursive, args.provider, elastic_info)