nim-eth2-scenarios/batch_convert_v0_8_3.nim

40 lines
1.0 KiB
Nim

import
# Standard library
ospaths, json, os,
# Utilities
./fixtures_utils
# This requires Nim 0.20.x for walkDirRec
# and `nimble install yaml@#devel` for 0.20.x compat
const yamlPath = "eth2.0-spec-tests"/"tests"
const jsonPath = "json_tests_v0.8.3"
const InOut = [
# Format:
# - Path to a folder.
# yaml files inside will be recursively converted
# preserving the directory structure
"general"/"phase0"/"bls",
"mainnet"/"phase0"/"shuffling"
]
proc main() =
for path in InOut:
for file in walkDirRec(yamlPath/path, relative = true):
echo "Processing: ", file
let (subpath, filename, ext) = splitFile(file)
doAssert ext == ".yaml", "This expects small pure YAML tests"
let inFile = yamlPath/path/subpath/filename & ".yaml"
let outFile = jsonPath/path/subpath/filename & ".json"
let jsonString = pretty(yamlToJson(inFile)[0])
createDir(jsonPath/path/subpath)
writeFile(outFile, jsonString)
echo "Finished"
when isMainModule:
main()