12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- """Given a FOFN, write JSON list.
- Cromwell write_json() does not work as we would expect.
- https://github.com/broadinstitute/cromwell/issues/4625
- So we use write_lines() instead.
- Then, this little program can convert those lines into JSON.
- """
- import argparse
- import logging
- import os
- import sys
- from .. import io
- LOG = logging.getLogger()
- def run(lines_fn, json_fn):
- with open(lines_fn) as sin:
- fns = [line.strip() for line in sin]
- io.serialize(json_fn, fns)
- class HelpF(argparse.RawTextHelpFormatter, argparse.ArgumentDefaultsHelpFormatter):
- pass
- def parse_args(argv):
- description = 'Symlink into current directory. This helps keep command-lines short later.'
- epilog = ''
- parser = argparse.ArgumentParser(
- description=description,
- epilog=epilog,
- formatter_class=HelpF,
- )
- parser.add_argument(
- '--lines-fn',
- help='Input. Result of WDL write_lines().')
- parser.add_argument(
- '--json-fn',
- help='Output. Should have been result of WDL write_json().')
- args = parser.parse_args(argv[1:])
- return args
- def main(argv=sys.argv):
- args = parse_args(argv)
- logging.basicConfig(level=logging.INFO)
- run(**vars(args))
- if __name__ == '__main__': # pragma: no cover
- main()
|