blob: 0dc85fcbaf83ffa1fd1172a64e23ed685915c79d [file] [log] [blame]
#!/usr/bin/env python3
# -*- indent-tabs-mode: nil -*- vi: set expandtab:
"""
NAME
yamltojson - convert a yaml file to a json file
SYNOPSIS
yamltojson file.yaml ...
DESCRIPTION
Read in a yaml file (whose name must end with ".yaml") and create cor‐
responding json files, whose names will end with ".json".
"""
import sys, re, yaml
try:
import simplejson as json
except:
import json
def die(msg):
""" generate a FATAL message to stdout and exit """
print("%s:FATAL:%s" % (date(), msg))
sys.exit(2)
for fname in sys.argv[1:]:
if fname.endswith(".yaml"):
y = None
with open(fname, "r") as fd:
try:
contents = fd.read()
contents = re.sub("^\t+", " ", contents, flags=re.M)
y = yaml.safe_load(contents)
except:
die("Invalid yaml in '%s'" % fname)
jsonfname = fname[:-5] + ".json"
with open(jsonfname, "w") as fd:
json.dump(y, fd, indent=4, sort_keys=True)