diff options
26 files changed, 2092 insertions, 1324 deletions
diff --git a/dub_describe.json b/dub_describe.json new file mode 100644 index 0000000..355978d --- /dev/null +++ b/dub_describe.json @@ -0,0 +1,2030 @@ +{ + "rootPackage": "spine", + "configuration": "default", + "buildType": "debug", + "compiler": "ldc", + "architecture": [ + "x86_64" + ], + "platform": [ + "linux", + "posix" + ], + "packages": [ + { + "path": "./", + "name": "spine", + "version": "0.11.3", + "description": "a sisu like document parser", + "homepage": "https://sisudoc.org", + "authors": [ + "Ralph Amissah" + ], + "copyright": "Copyright © 2015 - 2020 Ralph Amissah", + "license": "AGPL-3.0+", + "dependencies": [ + "spine:d2sqlite3", + "spine:dyaml", + "spine:imageformats" + ], + "active": true, + "configuration": "default", + "targetType": "executable", + "targetPath": "./bin", + "targetName": "spine", + "targetFileName": "spine", + "workingDirectory": "", + "mainSourceFile": "", + "dflags": [], + "lflags": [], + "libs": [], + "copyFiles": [], + "extraDependencyFiles": [], + "versions": [], + "debugVersions": [], + "importPaths": [ + "src/" + ], + "stringImportPaths": [ + "./views" + ], + "preGenerateCommands": [], + "postGenerateCommands": [], + "preBuildCommands": [], + "postBuildCommands": [], + "preRunCommands": [], + "postRunCommands": [], + "buildRequirements": [ + "allowWarnings" + ], + "options": [], + "files": [ + { + "role": "import_", + "path": "src/build_depends/dub2nix/src/dub2nix.d" + }, + { + "role": "source", + "path": "src/doc_reform/conf/compile_time_info.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_in/paths_source.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_in/read_config_files.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_in/read_source_files.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/cgi_sqlite_search_form.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/create_zip_file.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/defaults.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/epub3.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/html.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/hub.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/latex.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/metadata.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/odt.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/package.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/paths_output.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/rgx.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/source_pod.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/sqlite.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/xmls.d" + }, + { + "role": "source", + "path": "src/doc_reform/io_out/xmls_css.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/conf_make_meta_json.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/conf_make_meta_structs.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/conf_make_meta_yaml.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/defaults.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/doc_debugs.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/metadoc.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/metadoc_from_src.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/metadoc_harvest.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/metadoc_harvests_authors.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/metadoc_harvests_topics.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/metadoc_object_setter.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/metadoc_show_config.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/metadoc_show_make.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/metadoc_show_metadata.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/metadoc_show_summary.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/package.d" + }, + { + "role": "source", + "path": "src/doc_reform/meta/rgx.d" + }, + { + "role": "source", + "path": "src/doc_reform/share/defaults.d" + }, + { + "role": "source", + "path": "src/doc_reform/spine.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/constructor/main.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/getting_started/main.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/representer/main.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/resolver/main.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/tojson/source/app.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/yaml_bench/yaml_bench.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/yaml_gen/yaml_gen.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/yaml_stats/yaml_stats.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/composer.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/constructor.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/dumper.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/emitter.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/encoding.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/escapes.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/event.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/exception.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/linebreak.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/loader.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/node.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/package.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/parser.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/queue.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/reader.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/representer.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/resolver.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/scanner.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/serializer.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/style.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/tagdirective.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/common.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/compare.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/constructor.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/emitter.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/errors.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/reader.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/representer.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/resolver.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/tokens.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/token.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/testsuite/source/app.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/database.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/library.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/package.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/results.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/tests.d" + }, + { + "role": "import_", + "path": "src/ext_depends/imageformats/imageformats/bmp.d" + }, + { + "role": "import_", + "path": "src/ext_depends/imageformats/imageformats/jpeg.d" + }, + { + "role": "import_", + "path": "src/ext_depends/imageformats/imageformats/package.d" + }, + { + "role": "import_", + "path": "src/ext_depends/imageformats/imageformats/png.d" + }, + { + "role": "import_", + "path": "src/ext_depends/imageformats/imageformats/tga.d" + }, + { + "role": "import_", + "path": "src/ext_depends/tinyendian/source/tinyendian.d" + }, + { + "role": "stringImport", + "path": "views/version.txt" + } + ] + }, + { + "path": "./", + "name": "spine:d2sqlite3", + "version": "0.11.3", + "description": "A thin wrapper around SQLite 3", + "homepage": "https://github.com/dlang-community/d2sqlite3", + "authors": [ + "Nicolas Sicard", + "Other contributors: see Github repo" + ], + "copyright": "Copyright 2011-18 Nicolas Sicard", + "license": "BSL-1.0", + "dependencies": [], + "active": true, + "configuration": "with-lib", + "targetType": "library", + "targetPath": "", + "targetName": "spine_d2sqlite3", + "targetFileName": "libspine_d2sqlite3.a", + "workingDirectory": "", + "mainSourceFile": "", + "dflags": [], + "lflags": [], + "libs": [ + "sqlite3" + ], + "copyFiles": [], + "extraDependencyFiles": [], + "versions": [], + "debugVersions": [], + "importPaths": [ + "src/" + ], + "stringImportPaths": [ + "views" + ], + "preGenerateCommands": [], + "postGenerateCommands": [], + "preBuildCommands": [], + "postBuildCommands": [], + "preRunCommands": [], + "postRunCommands": [], + "buildRequirements": [], + "options": [], + "files": [ + { + "role": "import_", + "path": "src/build_depends/dub2nix/src/dub2nix.d" + }, + { + "role": "import_", + "path": "src/doc_reform/conf/compile_time_info.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_in/paths_source.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_in/read_config_files.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_in/read_source_files.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/cgi_sqlite_search_form.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/create_zip_file.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/defaults.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/epub3.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/html.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/hub.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/latex.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/metadata.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/odt.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/package.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/paths_output.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/rgx.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/source_pod.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/sqlite.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/xmls.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/xmls_css.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/conf_make_meta_json.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/conf_make_meta_structs.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/conf_make_meta_yaml.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/defaults.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/doc_debugs.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_from_src.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_harvest.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_harvests_authors.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_harvests_topics.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_object_setter.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_show_config.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_show_make.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_show_metadata.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_show_summary.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/package.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/rgx.d" + }, + { + "role": "import_", + "path": "src/doc_reform/share/defaults.d" + }, + { + "role": "import_", + "path": "src/doc_reform/spine.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/constructor/main.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/getting_started/main.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/representer/main.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/resolver/main.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/tojson/source/app.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/yaml_bench/yaml_bench.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/yaml_gen/yaml_gen.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/yaml_stats/yaml_stats.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/composer.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/constructor.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/dumper.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/emitter.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/encoding.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/escapes.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/event.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/exception.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/linebreak.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/loader.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/node.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/package.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/parser.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/queue.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/reader.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/representer.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/resolver.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/scanner.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/serializer.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/style.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/tagdirective.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/common.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/compare.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/constructor.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/emitter.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/errors.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/reader.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/representer.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/resolver.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/tokens.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/token.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/testsuite/source/app.d" + }, + { + "role": "source", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/database.d" + }, + { + "role": "source", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d" + }, + { + "role": "source", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d" + }, + { + "role": "source", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/library.d" + }, + { + "role": "source", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/package.d" + }, + { + "role": "source", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/results.d" + }, + { + "role": "source", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d" + }, + { + "role": "source", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d" + }, + { + "role": "source", + "path": "src/ext_depends/d2sqlite3/source/tests.d" + }, + { + "role": "import_", + "path": "src/ext_depends/imageformats/imageformats/bmp.d" + }, + { + "role": "import_", + "path": "src/ext_depends/imageformats/imageformats/jpeg.d" + }, + { + "role": "import_", + "path": "src/ext_depends/imageformats/imageformats/package.d" + }, + { + "role": "import_", + "path": "src/ext_depends/imageformats/imageformats/png.d" + }, + { + "role": "import_", + "path": "src/ext_depends/imageformats/imageformats/tga.d" + }, + { + "role": "import_", + "path": "src/ext_depends/tinyendian/source/tinyendian.d" + }, + { + "role": "stringImport", + "path": "views/version.txt" + } + ] + }, + { + "path": "./", + "name": "spine:dyaml", + "version": "0.11.3", + "description": "YAML parser and emitter", + "homepage": "https://github.com/dlang-community/D-YAML", + "authors": [ + "Ferdinand Majerech", + "Cameron \"Herringway\" Ross" + ], + "copyright": "Copyright © 2011-2018, Ferdinand Majerech", + "license": "BSL-1.0", + "dependencies": [], + "active": true, + "configuration": "library", + "targetType": "library", + "targetPath": "", + "targetName": "spine_dyaml", + "targetFileName": "libspine_dyaml.a", + "workingDirectory": "", + "mainSourceFile": "", + "dflags": [], + "lflags": [], + "libs": [], + "copyFiles": [], + "extraDependencyFiles": [], + "versions": [], + "debugVersions": [], + "importPaths": [ + "./src/ext_depends/D-YAML/source/dyaml", + "./src/ext_depends/tinyendian/source" + ], + "stringImportPaths": [ + "views" + ], + "preGenerateCommands": [ + "rm -rf ./src/ext_depends/D-YAML/examples", + "rm -rf ./src/ext_depends/D-YAML/testsuite" + ], + "postGenerateCommands": [], + "preBuildCommands": [], + "postBuildCommands": [], + "preRunCommands": [], + "postRunCommands": [], + "buildRequirements": [], + "options": [], + "files": [ + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/composer.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/constructor.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/dumper.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/emitter.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/encoding.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/escapes.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/event.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/exception.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/linebreak.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/loader.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/node.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/package.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/parser.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/queue.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/reader.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/representer.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/resolver.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/scanner.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/serializer.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/style.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/tagdirective.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/test/common.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/test/compare.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/test/constructor.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/test/emitter.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/test/errors.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/test/reader.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/test/representer.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/test/resolver.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/test/tokens.d" + }, + { + "role": "source", + "path": "src/ext_depends/D-YAML/source/dyaml/token.d" + }, + { + "role": "source", + "path": "src/ext_depends/tinyendian/source/tinyendian.d" + }, + { + "role": "stringImport", + "path": "views/version.txt" + } + ] + }, + { + "path": "./", + "name": "spine:imageformats", + "version": "0.11.3", + "description": "Decoders for PNG, TGA, BMP, JPEG and encoders for PNG, TGA, BMP.", + "homepage": "", + "authors": [ + "Tero Hänninen" + ], + "copyright": "", + "license": "BSL-1.0", + "dependencies": [], + "active": true, + "configuration": "library", + "targetType": "library", + "targetPath": "", + "targetName": "spine_imageformats", + "targetFileName": "libspine_imageformats.a", + "workingDirectory": "", + "mainSourceFile": "", + "dflags": [], + "lflags": [], + "libs": [], + "copyFiles": [], + "extraDependencyFiles": [], + "versions": [], + "debugVersions": [], + "importPaths": [ + "src/" + ], + "stringImportPaths": [ + "views" + ], + "preGenerateCommands": [], + "postGenerateCommands": [], + "preBuildCommands": [], + "postBuildCommands": [], + "preRunCommands": [], + "postRunCommands": [], + "buildRequirements": [], + "options": [], + "files": [ + { + "role": "import_", + "path": "src/build_depends/dub2nix/src/dub2nix.d" + }, + { + "role": "import_", + "path": "src/doc_reform/conf/compile_time_info.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_in/paths_source.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_in/read_config_files.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_in/read_source_files.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/cgi_sqlite_search_form.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/create_zip_file.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/defaults.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/epub3.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/html.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/hub.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/latex.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/metadata.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/odt.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/package.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/paths_output.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/rgx.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/source_pod.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/sqlite.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/xmls.d" + }, + { + "role": "import_", + "path": "src/doc_reform/io_out/xmls_css.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/conf_make_meta_json.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/conf_make_meta_structs.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/conf_make_meta_yaml.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/defaults.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/doc_debugs.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_from_src.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_harvest.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_harvests_authors.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_harvests_topics.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_object_setter.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_show_config.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_show_make.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_show_metadata.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/metadoc_show_summary.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/package.d" + }, + { + "role": "import_", + "path": "src/doc_reform/meta/rgx.d" + }, + { + "role": "import_", + "path": "src/doc_reform/share/defaults.d" + }, + { + "role": "import_", + "path": "src/doc_reform/spine.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/constructor/main.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/getting_started/main.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/representer/main.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/resolver/main.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/tojson/source/app.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/yaml_bench/yaml_bench.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/yaml_gen/yaml_gen.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/examples/yaml_stats/yaml_stats.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/composer.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/constructor.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/dumper.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/emitter.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/encoding.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/escapes.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/event.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/exception.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/linebreak.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/loader.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/node.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/package.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/parser.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/queue.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/reader.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/representer.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/resolver.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/scanner.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/serializer.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/style.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/tagdirective.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/common.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/compare.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/constructor.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/emitter.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/errors.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/reader.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/representer.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/resolver.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/test/tokens.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/source/dyaml/token.d" + }, + { + "role": "import_", + "path": "src/ext_depends/D-YAML/testsuite/source/app.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/database.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/library.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/package.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/results.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d" + }, + { + "role": "import_", + "path": "src/ext_depends/d2sqlite3/source/tests.d" + }, + { + "role": "source", + "path": "src/ext_depends/imageformats/imageformats/bmp.d" + }, + { + "role": "source", + "path": "src/ext_depends/imageformats/imageformats/jpeg.d" + }, + { + "role": "source", + "path": "src/ext_depends/imageformats/imageformats/package.d" + }, + { + "role": "source", + "path": "src/ext_depends/imageformats/imageformats/png.d" + }, + { + "role": "source", + "path": "src/ext_depends/imageformats/imageformats/tga.d" + }, + { + "role": "import_", + "path": "src/ext_depends/tinyendian/source/tinyendian.d" + }, + { + "role": "stringImport", + "path": "views/version.txt" + } + ] + } + ], + "targets": [ + { + "rootPackage": "spine", + "packages": [ + "spine" + ], + "rootConfiguration": "default", + "buildSettings": { + "targetType": 2, + "targetPath": "./bin", + "targetName": "spine", + "workingDirectory": "", + "mainSourceFile": "", + "dflags": [], + "lflags": [], + "libs": [ + "sqlite3" + ], + "linkerFiles": [ + "./libspine_d2sqlite3.a", + "./libspine_dyaml.a", + "./libspine_imageformats.a" + ], + "sourceFiles": [ + "./src/doc_reform/conf/compile_time_info.d", + "./src/doc_reform/io_in/paths_source.d", + "./src/doc_reform/io_in/read_config_files.d", + "./src/doc_reform/io_in/read_source_files.d", + "./src/doc_reform/io_out/cgi_sqlite_search_form.d", + "./src/doc_reform/io_out/create_zip_file.d", + "./src/doc_reform/io_out/defaults.d", + "./src/doc_reform/io_out/epub3.d", + "./src/doc_reform/io_out/html.d", + "./src/doc_reform/io_out/hub.d", + "./src/doc_reform/io_out/latex.d", + "./src/doc_reform/io_out/metadata.d", + "./src/doc_reform/io_out/odt.d", + "./src/doc_reform/io_out/package.d", + "./src/doc_reform/io_out/paths_output.d", + "./src/doc_reform/io_out/rgx.d", + "./src/doc_reform/io_out/source_pod.d", + "./src/doc_reform/io_out/sqlite.d", + "./src/doc_reform/io_out/xmls.d", + "./src/doc_reform/io_out/xmls_css.d", + "./src/doc_reform/meta/conf_make_meta_json.d", + "./src/doc_reform/meta/conf_make_meta_structs.d", + "./src/doc_reform/meta/conf_make_meta_yaml.d", + "./src/doc_reform/meta/defaults.d", + "./src/doc_reform/meta/doc_debugs.d", + "./src/doc_reform/meta/metadoc.d", + "./src/doc_reform/meta/metadoc_from_src.d", + "./src/doc_reform/meta/metadoc_harvest.d", + "./src/doc_reform/meta/metadoc_harvests_authors.d", + "./src/doc_reform/meta/metadoc_harvests_topics.d", + "./src/doc_reform/meta/metadoc_object_setter.d", + "./src/doc_reform/meta/metadoc_show_config.d", + "./src/doc_reform/meta/metadoc_show_make.d", + "./src/doc_reform/meta/metadoc_show_metadata.d", + "./src/doc_reform/meta/metadoc_show_summary.d", + "./src/doc_reform/meta/package.d", + "./src/doc_reform/meta/rgx.d", + "./src/doc_reform/share/defaults.d", + "./src/doc_reform/spine.d" + ], + "copyFiles": [], + "extraDependencyFiles": [], + "versions": [ + "Have_spine", + "Have_spine_d2sqlite3", + "Have_spine_dyaml", + "Have_spine_imageformats" + ], + "debugVersions": [], + "versionFilters": [], + "debugVersionFilters": [], + "importPaths": [ + "./src/", + "./src/ext_depends/D-YAML/source/dyaml", + "./src/ext_depends/tinyendian/source" + ], + "stringImportPaths": [ + "./views" + ], + "importFiles": [ + "./src/build_depends/dub2nix/src/dub2nix.d", + "./src/ext_depends/D-YAML/source/dyaml/composer.d", + "./src/ext_depends/D-YAML/source/dyaml/constructor.d", + "./src/ext_depends/D-YAML/source/dyaml/dumper.d", + "./src/ext_depends/D-YAML/source/dyaml/emitter.d", + "./src/ext_depends/D-YAML/source/dyaml/encoding.d", + "./src/ext_depends/D-YAML/source/dyaml/escapes.d", + "./src/ext_depends/D-YAML/source/dyaml/event.d", + "./src/ext_depends/D-YAML/source/dyaml/exception.d", + "./src/ext_depends/D-YAML/source/dyaml/linebreak.d", + "./src/ext_depends/D-YAML/source/dyaml/loader.d", + "./src/ext_depends/D-YAML/source/dyaml/node.d", + "./src/ext_depends/D-YAML/source/dyaml/package.d", + "./src/ext_depends/D-YAML/source/dyaml/parser.d", + "./src/ext_depends/D-YAML/source/dyaml/queue.d", + "./src/ext_depends/D-YAML/source/dyaml/reader.d", + "./src/ext_depends/D-YAML/source/dyaml/representer.d", + "./src/ext_depends/D-YAML/source/dyaml/resolver.d", + "./src/ext_depends/D-YAML/source/dyaml/scanner.d", + "./src/ext_depends/D-YAML/source/dyaml/serializer.d", + "./src/ext_depends/D-YAML/source/dyaml/style.d", + "./src/ext_depends/D-YAML/source/dyaml/tagdirective.d", + "./src/ext_depends/D-YAML/source/dyaml/test/common.d", + "./src/ext_depends/D-YAML/source/dyaml/test/compare.d", + "./src/ext_depends/D-YAML/source/dyaml/test/constructor.d", + "./src/ext_depends/D-YAML/source/dyaml/test/emitter.d", + "./src/ext_depends/D-YAML/source/dyaml/test/errors.d", + "./src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", + "./src/ext_depends/D-YAML/source/dyaml/test/reader.d", + "./src/ext_depends/D-YAML/source/dyaml/test/representer.d", + "./src/ext_depends/D-YAML/source/dyaml/test/resolver.d", + "./src/ext_depends/D-YAML/source/dyaml/test/tokens.d", + "./src/ext_depends/D-YAML/source/dyaml/token.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/database.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/library.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/package.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/results.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d", + "./src/ext_depends/d2sqlite3/source/tests.d", + "./src/ext_depends/imageformats/imageformats/bmp.d", + "./src/ext_depends/imageformats/imageformats/jpeg.d", + "./src/ext_depends/imageformats/imageformats/package.d", + "./src/ext_depends/imageformats/imageformats/png.d", + "./src/ext_depends/imageformats/imageformats/tga.d", + "./src/ext_depends/tinyendian/source/tinyendian.d" + ], + "stringImportFiles": [ + "./views/version.txt" + ], + "preGenerateCommands": [], + "postGenerateCommands": [], + "preBuildCommands": [], + "postBuildCommands": [], + "preRunCommands": [], + "postRunCommands": [], + "requirements": {}, + "options": {} + }, + "dependencies": [ + "spine:d2sqlite3", + "spine:dyaml", + "spine:imageformats" + ], + "linkDependencies": [ + "spine:d2sqlite3", + "spine:dyaml", + "spine:imageformats" + ] + }, + { + "rootPackage": "spine:d2sqlite3", + "packages": [ + "spine:d2sqlite3" + ], + "rootConfiguration": "with-lib", + "buildSettings": { + "targetType": 6, + "targetPath": ".", + "targetName": "spine_d2sqlite3", + "workingDirectory": "", + "mainSourceFile": "", + "dflags": [], + "lflags": [], + "libs": [ + "sqlite3" + ], + "linkerFiles": [], + "sourceFiles": [ + "./src/ext_depends/d2sqlite3/source/d2sqlite3/database.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/library.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/package.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/results.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d", + "./src/ext_depends/d2sqlite3/source/tests.d" + ], + "copyFiles": [], + "extraDependencyFiles": [], + "versions": [ + "Have_spine_d2sqlite3" + ], + "debugVersions": [], + "versionFilters": [], + "debugVersionFilters": [], + "importPaths": [ + "./src/" + ], + "stringImportPaths": [ + "./views" + ], + "importFiles": [ + "./src/build_depends/dub2nix/src/dub2nix.d", + "./src/doc_reform/conf/compile_time_info.d", + "./src/doc_reform/io_in/paths_source.d", + "./src/doc_reform/io_in/read_config_files.d", + "./src/doc_reform/io_in/read_source_files.d", + "./src/doc_reform/io_out/cgi_sqlite_search_form.d", + "./src/doc_reform/io_out/create_zip_file.d", + "./src/doc_reform/io_out/defaults.d", + "./src/doc_reform/io_out/epub3.d", + "./src/doc_reform/io_out/html.d", + "./src/doc_reform/io_out/hub.d", + "./src/doc_reform/io_out/latex.d", + "./src/doc_reform/io_out/metadata.d", + "./src/doc_reform/io_out/odt.d", + "./src/doc_reform/io_out/package.d", + "./src/doc_reform/io_out/paths_output.d", + "./src/doc_reform/io_out/rgx.d", + "./src/doc_reform/io_out/source_pod.d", + "./src/doc_reform/io_out/sqlite.d", + "./src/doc_reform/io_out/xmls.d", + "./src/doc_reform/io_out/xmls_css.d", + "./src/doc_reform/meta/conf_make_meta_json.d", + "./src/doc_reform/meta/conf_make_meta_structs.d", + "./src/doc_reform/meta/conf_make_meta_yaml.d", + "./src/doc_reform/meta/defaults.d", + "./src/doc_reform/meta/doc_debugs.d", + "./src/doc_reform/meta/metadoc.d", + "./src/doc_reform/meta/metadoc_from_src.d", + "./src/doc_reform/meta/metadoc_harvest.d", + "./src/doc_reform/meta/metadoc_harvests_authors.d", + "./src/doc_reform/meta/metadoc_harvests_topics.d", + "./src/doc_reform/meta/metadoc_object_setter.d", + "./src/doc_reform/meta/metadoc_show_config.d", + "./src/doc_reform/meta/metadoc_show_make.d", + "./src/doc_reform/meta/metadoc_show_metadata.d", + "./src/doc_reform/meta/metadoc_show_summary.d", + "./src/doc_reform/meta/package.d", + "./src/doc_reform/meta/rgx.d", + "./src/doc_reform/share/defaults.d", + "./src/doc_reform/spine.d", + "./src/ext_depends/D-YAML/examples/constructor/main.d", + "./src/ext_depends/D-YAML/examples/getting_started/main.d", + "./src/ext_depends/D-YAML/examples/representer/main.d", + "./src/ext_depends/D-YAML/examples/resolver/main.d", + "./src/ext_depends/D-YAML/examples/tojson/source/app.d", + "./src/ext_depends/D-YAML/examples/yaml_bench/yaml_bench.d", + "./src/ext_depends/D-YAML/examples/yaml_gen/yaml_gen.d", + "./src/ext_depends/D-YAML/examples/yaml_stats/yaml_stats.d", + "./src/ext_depends/D-YAML/source/dyaml/composer.d", + "./src/ext_depends/D-YAML/source/dyaml/constructor.d", + "./src/ext_depends/D-YAML/source/dyaml/dumper.d", + "./src/ext_depends/D-YAML/source/dyaml/emitter.d", + "./src/ext_depends/D-YAML/source/dyaml/encoding.d", + "./src/ext_depends/D-YAML/source/dyaml/escapes.d", + "./src/ext_depends/D-YAML/source/dyaml/event.d", + "./src/ext_depends/D-YAML/source/dyaml/exception.d", + "./src/ext_depends/D-YAML/source/dyaml/linebreak.d", + "./src/ext_depends/D-YAML/source/dyaml/loader.d", + "./src/ext_depends/D-YAML/source/dyaml/node.d", + "./src/ext_depends/D-YAML/source/dyaml/package.d", + "./src/ext_depends/D-YAML/source/dyaml/parser.d", + "./src/ext_depends/D-YAML/source/dyaml/queue.d", + "./src/ext_depends/D-YAML/source/dyaml/reader.d", + "./src/ext_depends/D-YAML/source/dyaml/representer.d", + "./src/ext_depends/D-YAML/source/dyaml/resolver.d", + "./src/ext_depends/D-YAML/source/dyaml/scanner.d", + "./src/ext_depends/D-YAML/source/dyaml/serializer.d", + "./src/ext_depends/D-YAML/source/dyaml/style.d", + "./src/ext_depends/D-YAML/source/dyaml/tagdirective.d", + "./src/ext_depends/D-YAML/source/dyaml/test/common.d", + "./src/ext_depends/D-YAML/source/dyaml/test/compare.d", + "./src/ext_depends/D-YAML/source/dyaml/test/constructor.d", + "./src/ext_depends/D-YAML/source/dyaml/test/emitter.d", + "./src/ext_depends/D-YAML/source/dyaml/test/errors.d", + "./src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", + "./src/ext_depends/D-YAML/source/dyaml/test/reader.d", + "./src/ext_depends/D-YAML/source/dyaml/test/representer.d", + "./src/ext_depends/D-YAML/source/dyaml/test/resolver.d", + "./src/ext_depends/D-YAML/source/dyaml/test/tokens.d", + "./src/ext_depends/D-YAML/source/dyaml/token.d", + "./src/ext_depends/D-YAML/testsuite/source/app.d", + "./src/ext_depends/imageformats/imageformats/bmp.d", + "./src/ext_depends/imageformats/imageformats/jpeg.d", + "./src/ext_depends/imageformats/imageformats/package.d", + "./src/ext_depends/imageformats/imageformats/png.d", + "./src/ext_depends/imageformats/imageformats/tga.d", + "./src/ext_depends/tinyendian/source/tinyendian.d" + ], + "stringImportFiles": [ + "./views/version.txt" + ], + "preGenerateCommands": [], + "postGenerateCommands": [], + "preBuildCommands": [], + "postBuildCommands": [], + "preRunCommands": [], + "postRunCommands": [], + "requirements": {}, + "options": {} + }, + "dependencies": [], + "linkDependencies": [] + }, + { + "rootPackage": "spine:dyaml", + "packages": [ + "spine:dyaml" + ], + "rootConfiguration": "library", + "buildSettings": { + "targetType": 6, + "targetPath": ".", + "targetName": "spine_dyaml", + "workingDirectory": "", + "mainSourceFile": "", + "dflags": [], + "lflags": [], + "libs": [], + "linkerFiles": [], + "sourceFiles": [ + "./src/ext_depends/D-YAML/source/dyaml/composer.d", + "./src/ext_depends/D-YAML/source/dyaml/constructor.d", + "./src/ext_depends/D-YAML/source/dyaml/dumper.d", + "./src/ext_depends/D-YAML/source/dyaml/emitter.d", + "./src/ext_depends/D-YAML/source/dyaml/encoding.d", + "./src/ext_depends/D-YAML/source/dyaml/escapes.d", + "./src/ext_depends/D-YAML/source/dyaml/event.d", + "./src/ext_depends/D-YAML/source/dyaml/exception.d", + "./src/ext_depends/D-YAML/source/dyaml/linebreak.d", + "./src/ext_depends/D-YAML/source/dyaml/loader.d", + "./src/ext_depends/D-YAML/source/dyaml/node.d", + "./src/ext_depends/D-YAML/source/dyaml/package.d", + "./src/ext_depends/D-YAML/source/dyaml/parser.d", + "./src/ext_depends/D-YAML/source/dyaml/queue.d", + "./src/ext_depends/D-YAML/source/dyaml/reader.d", + "./src/ext_depends/D-YAML/source/dyaml/representer.d", + "./src/ext_depends/D-YAML/source/dyaml/resolver.d", + "./src/ext_depends/D-YAML/source/dyaml/scanner.d", + "./src/ext_depends/D-YAML/source/dyaml/serializer.d", + "./src/ext_depends/D-YAML/source/dyaml/style.d", + "./src/ext_depends/D-YAML/source/dyaml/tagdirective.d", + "./src/ext_depends/D-YAML/source/dyaml/test/common.d", + "./src/ext_depends/D-YAML/source/dyaml/test/compare.d", + "./src/ext_depends/D-YAML/source/dyaml/test/constructor.d", + "./src/ext_depends/D-YAML/source/dyaml/test/emitter.d", + "./src/ext_depends/D-YAML/source/dyaml/test/errors.d", + "./src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", + "./src/ext_depends/D-YAML/source/dyaml/test/reader.d", + "./src/ext_depends/D-YAML/source/dyaml/test/representer.d", + "./src/ext_depends/D-YAML/source/dyaml/test/resolver.d", + "./src/ext_depends/D-YAML/source/dyaml/test/tokens.d", + "./src/ext_depends/D-YAML/source/dyaml/token.d", + "./src/ext_depends/tinyendian/source/tinyendian.d" + ], + "copyFiles": [], + "extraDependencyFiles": [], + "versions": [ + "Have_spine_dyaml" + ], + "debugVersions": [], + "versionFilters": [], + "debugVersionFilters": [], + "importPaths": [ + "./src/ext_depends/D-YAML/source/dyaml", + "./src/ext_depends/tinyendian/source" + ], + "stringImportPaths": [ + "./views" + ], + "importFiles": [], + "stringImportFiles": [ + "./views/version.txt" + ], + "preGenerateCommands": [ + "rm -rf ./src/ext_depends/D-YAML/examples", + "rm -rf ./src/ext_depends/D-YAML/testsuite" + ], + "postGenerateCommands": [], + "preBuildCommands": [], + "postBuildCommands": [], + "preRunCommands": [], + "postRunCommands": [], + "requirements": {}, + "options": {} + }, + "dependencies": [], + "linkDependencies": [] + }, + { + "rootPackage": "spine:imageformats", + "packages": [ + "spine:imageformats" + ], + "rootConfiguration": "library", + "buildSettings": { + "targetType": 6, + "targetPath": ".", + "targetName": "spine_imageformats", + "workingDirectory": "", + "mainSourceFile": "", + "dflags": [], + "lflags": [], + "libs": [], + "linkerFiles": [], + "sourceFiles": [ + "./src/ext_depends/imageformats/imageformats/bmp.d", + "./src/ext_depends/imageformats/imageformats/jpeg.d", + "./src/ext_depends/imageformats/imageformats/package.d", + "./src/ext_depends/imageformats/imageformats/png.d", + "./src/ext_depends/imageformats/imageformats/tga.d" + ], + "copyFiles": [], + "extraDependencyFiles": [], + "versions": [ + "Have_spine_imageformats" + ], + "debugVersions": [], + "versionFilters": [], + "debugVersionFilters": [], + "importPaths": [ + "./src/" + ], + "stringImportPaths": [ + "./views" + ], + "importFiles": [ + "./src/build_depends/dub2nix/src/dub2nix.d", + "./src/doc_reform/conf/compile_time_info.d", + "./src/doc_reform/io_in/paths_source.d", + "./src/doc_reform/io_in/read_config_files.d", + "./src/doc_reform/io_in/read_source_files.d", + "./src/doc_reform/io_out/cgi_sqlite_search_form.d", + "./src/doc_reform/io_out/create_zip_file.d", + "./src/doc_reform/io_out/defaults.d", + "./src/doc_reform/io_out/epub3.d", + "./src/doc_reform/io_out/html.d", + "./src/doc_reform/io_out/hub.d", + "./src/doc_reform/io_out/latex.d", + "./src/doc_reform/io_out/metadata.d", + "./src/doc_reform/io_out/odt.d", + "./src/doc_reform/io_out/package.d", + "./src/doc_reform/io_out/paths_output.d", + "./src/doc_reform/io_out/rgx.d", + "./src/doc_reform/io_out/source_pod.d", + "./src/doc_reform/io_out/sqlite.d", + "./src/doc_reform/io_out/xmls.d", + "./src/doc_reform/io_out/xmls_css.d", + "./src/doc_reform/meta/conf_make_meta_json.d", + "./src/doc_reform/meta/conf_make_meta_structs.d", + "./src/doc_reform/meta/conf_make_meta_yaml.d", + "./src/doc_reform/meta/defaults.d", + "./src/doc_reform/meta/doc_debugs.d", + "./src/doc_reform/meta/metadoc.d", + "./src/doc_reform/meta/metadoc_from_src.d", + "./src/doc_reform/meta/metadoc_harvest.d", + "./src/doc_reform/meta/metadoc_harvests_authors.d", + "./src/doc_reform/meta/metadoc_harvests_topics.d", + "./src/doc_reform/meta/metadoc_object_setter.d", + "./src/doc_reform/meta/metadoc_show_config.d", + "./src/doc_reform/meta/metadoc_show_make.d", + "./src/doc_reform/meta/metadoc_show_metadata.d", + "./src/doc_reform/meta/metadoc_show_summary.d", + "./src/doc_reform/meta/package.d", + "./src/doc_reform/meta/rgx.d", + "./src/doc_reform/share/defaults.d", + "./src/doc_reform/spine.d", + "./src/ext_depends/D-YAML/source/dyaml/composer.d", + "./src/ext_depends/D-YAML/source/dyaml/constructor.d", + "./src/ext_depends/D-YAML/source/dyaml/dumper.d", + "./src/ext_depends/D-YAML/source/dyaml/emitter.d", + "./src/ext_depends/D-YAML/source/dyaml/encoding.d", + "./src/ext_depends/D-YAML/source/dyaml/escapes.d", + "./src/ext_depends/D-YAML/source/dyaml/event.d", + "./src/ext_depends/D-YAML/source/dyaml/exception.d", + "./src/ext_depends/D-YAML/source/dyaml/linebreak.d", + "./src/ext_depends/D-YAML/source/dyaml/loader.d", + "./src/ext_depends/D-YAML/source/dyaml/node.d", + "./src/ext_depends/D-YAML/source/dyaml/package.d", + "./src/ext_depends/D-YAML/source/dyaml/parser.d", + "./src/ext_depends/D-YAML/source/dyaml/queue.d", + "./src/ext_depends/D-YAML/source/dyaml/reader.d", + "./src/ext_depends/D-YAML/source/dyaml/representer.d", + "./src/ext_depends/D-YAML/source/dyaml/resolver.d", + "./src/ext_depends/D-YAML/source/dyaml/scanner.d", + "./src/ext_depends/D-YAML/source/dyaml/serializer.d", + "./src/ext_depends/D-YAML/source/dyaml/style.d", + "./src/ext_depends/D-YAML/source/dyaml/tagdirective.d", + "./src/ext_depends/D-YAML/source/dyaml/test/common.d", + "./src/ext_depends/D-YAML/source/dyaml/test/compare.d", + "./src/ext_depends/D-YAML/source/dyaml/test/constructor.d", + "./src/ext_depends/D-YAML/source/dyaml/test/emitter.d", + "./src/ext_depends/D-YAML/source/dyaml/test/errors.d", + "./src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", + "./src/ext_depends/D-YAML/source/dyaml/test/reader.d", + "./src/ext_depends/D-YAML/source/dyaml/test/representer.d", + "./src/ext_depends/D-YAML/source/dyaml/test/resolver.d", + "./src/ext_depends/D-YAML/source/dyaml/test/tokens.d", + "./src/ext_depends/D-YAML/source/dyaml/token.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/database.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/library.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/package.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/results.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d", + "./src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d", + "./src/ext_depends/d2sqlite3/source/tests.d", + "./src/ext_depends/tinyendian/source/tinyendian.d" + ], + "stringImportFiles": [ + "./views/version.txt" + ], + "preGenerateCommands": [], + "postGenerateCommands": [], + "preBuildCommands": [], + "postBuildCommands": [], + "preRunCommands": [], + "postRunCommands": [], + "requirements": {}, + "options": {} + }, + "dependencies": [], + "linkDependencies": [] + } + ] +} @@ -104,6 +104,7 @@ get_depends: echo $${hwd} && \ echo $${gwd} && \ echo $${dirs} && \ + dub upgrade; \ cd $${gwd} && \ for dir in $${dirs}; do \ if [ -d $${dir} ]; then \ @@ -154,6 +155,19 @@ get_depends: cd $${hwd} set_depends: get_depends dub describe | sed 's_$(shell echo `pwd | sed 's_/_\\/_g'`)_._g' > dub_describe.json +rm_flakelock: + git reset HEAD flake.lock && \ + touch flake.lock \ + git rm -f flake.lock +flake_update: + git add .; \ + nix flake update && \ + git reset HEAD flake.lock; \ + cp flake.lock flake.lock_ +flake_update_move_lock: flake_update + touch flake.lock \ + git rm -f flake.lock +set_latest: set_depends flake_update rm_flakelock dub_upgrade: $(DUB) upgrade default: ldc @@ -603,7 +617,18 @@ tangle_maker: (setq-local org-src-preserve-indentation t) \ (org-babel-tangle) \ (kill-buffer)) '($$ORGFILES)))" 2>&1 - +lorri_shell: + lorri shell +nix_shell: + nix-shell +nix_build_default: + nix build -f default.nix && ./result/bin/spine -v +nix_build_project: + nix build -f project.nix && ./result/bin/spine -v +nix_build_spine: + nix build -f spine.nix && ./result/bin/spine -v +nix-build_default: + nix-build default.nix gitsnapshot: distclean tangle git commit -a .PHONY : all build rebuild debug release \ diff --git a/org/spine_build_scaffold.org b/org/spine_build_scaffold.org index 94745fd..87e3228 100644 --- a/org/spine_build_scaffold.org +++ b/org/spine_build_scaffold.org @@ -127,7 +127,7 @@ <<make_project_testrun_12>> <<make_tangle_0>> <<make_tangle_1>> -<<make_nix_project_shell>> +<<make_nix_project>> <<make_git_snapshot>> <<make_phony>> #+END_SRC @@ -361,6 +361,7 @@ get_depends: echo $${hwd} && \ echo $${gwd} && \ echo $${dirs} && \ + dub upgrade; \ cd $${gwd} && \ for dir in $${dirs}; do \ if [ -d $${dir} ]; then \ @@ -411,6 +412,19 @@ get_depends: cd $${hwd} set_depends: get_depends dub describe | sed 's_$(shell echo `pwd | sed 's_/_\\/_g'`)_._g' > dub_describe.json +rm_flakelock: + git reset HEAD flake.lock && \ + touch flake.lock \ + git rm -f flake.lock +flake_update: + git add .; \ + nix flake update && \ + git reset HEAD flake.lock; \ + cp flake.lock flake.lock_ +flake_update_move_lock: flake_update + touch flake.lock \ + git rm -f flake.lock +set_latest: set_depends flake_update rm_flakelock #+END_SRC gitDir=dub2nix; git clone --depth=1 https://github.com/lionello/${gitDir} | rm -rf ${gitDir}/.git @@ -1098,6 +1112,24 @@ tangle_maker: (kill-buffer)) '($$ORGFILES)))" 2>&1 #+END_SRC +**** tangle nix project + +#+NAME: make_nix_project +#+BEGIN_SRC makefile +lorri_shell: + lorri shell +nix_shell: + nix-shell +nix_build_default: + nix build -f default.nix && ./result/bin/spine -v +nix_build_project: + nix build -f project.nix && ./result/bin/spine -v +nix_build_spine: + nix build -f spine.nix && ./result/bin/spine -v +nix-build_default: + nix-build default.nix +#+END_SRC + *** git snapshot #+NAME: make_git_snapshot @@ -2181,7 +2213,7 @@ echo "<nixpkgs> `nix-instantiate --find-file nixpkgs`" nix develop -nix flake update --recreate-lock-file +nix flake update #+BEGIN_SRC nix :tangle ../flake.nix { @@ -2313,7 +2345,8 @@ nix flake update --recreate-lock-file nix build nix build -f default.nix && noti - nix build -f default.nix && noti -t "spine built" -m "see ./result/bin/spine" + nix build -f default.nix && ./result/bin/spine -v && noti -t "spine build" -m "see ./result/bin/spine" + nix build -f spine.nix && ./result/bin/spine -v && noti -t "spine build" -m "see ./result/bin/spine" nix build -f project.nix nix build -f spine.nix diff --git a/src/ext_depends/D-YAML/examples/constructor/dub.json b/src/ext_depends/D-YAML/examples/constructor/dub.json deleted file mode 100644 index 1aca4ee..0000000 --- a/src/ext_depends/D-YAML/examples/constructor/dub.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "constructor", - "targetType": "executable", - "sourceFiles": ["main.d"], - "mainSourceFile": "main.d", - "dependencies": - { - "dyaml": { "version" : "*"} - } -} diff --git a/src/ext_depends/D-YAML/examples/constructor/input.yaml b/src/ext_depends/D-YAML/examples/constructor/input.yaml deleted file mode 100644 index 8d56926..0000000 --- a/src/ext_depends/D-YAML/examples/constructor/input.yaml +++ /dev/null @@ -1,8 +0,0 @@ -scalar-red: !color FF0000 -scalar-orange: !color FFFF00 -mapping-red: !color-mapping {r: 255, g: 0, b: 0} -mapping-orange: - !color-mapping - r: 255 - g: 255 - b: 0 diff --git a/src/ext_depends/D-YAML/examples/constructor/main.d b/src/ext_depends/D-YAML/examples/constructor/main.d deleted file mode 100644 index 50826f1..0000000 --- a/src/ext_depends/D-YAML/examples/constructor/main.d +++ /dev/null @@ -1,91 +0,0 @@ -import std.stdio; -import std.string; -import dyaml; - -struct Color -{ - ubyte red; - ubyte green; - ubyte blue; - - this(ubyte r, ubyte g, ubyte b) @safe - { - red = r; - green = g; - blue = b; - } - - this(const Node node, string tag) @safe - { - if (tag == "!color-mapping") - { - //Will throw if a value is missing, is not an integer, or is out of range. - red = node["r"].as!ubyte; - green = node["g"].as!ubyte; - blue = node["b"].as!ubyte; - } - else - { - string value = node.as!string; - - if(value.length != 6) - { - throw new Exception("Invalid color: " ~ value); - } - //We don't need to check for uppercase chars this way. - value = value.toLower(); - - //Get value of a hex digit. - uint hex(char c) - { - import std.ascii; - if(!std.ascii.isHexDigit(c)) - { - throw new Exception("Invalid color: " ~ value); - } - - if(std.ascii.isDigit(c)) - { - return c - '0'; - } - return c - 'a' + 10; - } - - red = cast(ubyte)(16 * hex(value[0]) + hex(value[1])); - green = cast(ubyte)(16 * hex(value[2]) + hex(value[3])); - blue = cast(ubyte)(16 * hex(value[4]) + hex(value[5])); - } - } -} - -void main(string[] args) -{ - auto red = Color(255, 0, 0); - auto orange = Color(255, 255, 0); - - string path = "input.yaml"; - if (args.length > 1) - { - path = args[1]; - } - - try - { - auto root = Loader.fromFile(path).load(); - - if(root["scalar-red"].as!Color == red && - root["mapping-red"].as!Color == red && - root["scalar-orange"].as!Color == orange && - root["mapping-orange"].as!Color == orange) - { - writeln("SUCCESS"); - return; - } - } - catch(YAMLException e) - { - writeln(e.msg); - } - - writeln("FAILURE"); -} diff --git a/src/ext_depends/D-YAML/examples/getting_started/dub.json b/src/ext_depends/D-YAML/examples/getting_started/dub.json deleted file mode 100644 index 844c006..0000000 --- a/src/ext_depends/D-YAML/examples/getting_started/dub.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "getting-started", - "targetType": "executable", - "sourceFiles": ["main.d"], - "mainSourceFile": "main.d", - "dependencies": - { - "dyaml": { "version" : "*" } - } -} diff --git a/src/ext_depends/D-YAML/examples/getting_started/input.yaml b/src/ext_depends/D-YAML/examples/getting_started/input.yaml deleted file mode 100644 index 8b093ae..0000000 --- a/src/ext_depends/D-YAML/examples/getting_started/input.yaml +++ /dev/null @@ -1,2 +0,0 @@ -Hello World : [Hello, World] -Answer : 42 diff --git a/src/ext_depends/D-YAML/examples/getting_started/main.d b/src/ext_depends/D-YAML/examples/getting_started/main.d deleted file mode 100644 index 2cc242c..0000000 --- a/src/ext_depends/D-YAML/examples/getting_started/main.d +++ /dev/null @@ -1,18 +0,0 @@ -import std.stdio; -import dyaml; - -void main() -{ - //Read the input. - Node root = Loader.fromFile("input.yaml").load(); - - //Display the data read. - foreach(string word; root["Hello World"]) - { - writeln(word); - } - writeln("The answer is ", root["Answer"].as!int); - - //Dump the loaded document to output.yaml. - dumper().dump(File("output.yaml", "w").lockingTextWriter, root); -} diff --git a/src/ext_depends/D-YAML/examples/representer/dub.json b/src/ext_depends/D-YAML/examples/representer/dub.json deleted file mode 100644 index c46c42f..0000000 --- a/src/ext_depends/D-YAML/examples/representer/dub.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "representer", - "targetType": "executable", - "sourceFiles": ["main.d"], - "mainSourceFile": "main.d", - "dependencies": - { - "dyaml": { "version" : "*" } - } -} diff --git a/src/ext_depends/D-YAML/examples/representer/main.d b/src/ext_depends/D-YAML/examples/representer/main.d deleted file mode 100644 index 18ec4c5..0000000 --- a/src/ext_depends/D-YAML/examples/representer/main.d +++ /dev/null @@ -1,43 +0,0 @@ -import std.stdio; -import dyaml; - -struct Color -{ - ubyte red; - ubyte green; - ubyte blue; - - Node opCast(T: Node)() const - { - static immutable hex = "0123456789ABCDEF"; - - //Using the color format from the Constructor example. - string scalar; - foreach(channel; [red, green, blue]) - { - scalar ~= hex[channel / 16]; - scalar ~= hex[channel % 16]; - } - - //Representing as a scalar, with custom tag to specify this data type. - return Node(scalar, "!color"); - } -} - -void main() -{ - try - { - auto dumper = dumper(); - - auto document = Node([Color(255, 0, 0), - Color(0, 255, 0), - Color(0, 0, 255)]); - - dumper.dump(File("output.yaml", "w").lockingTextWriter, document); - } - catch(YAMLException e) - { - writeln(e.msg); - } -} diff --git a/src/ext_depends/D-YAML/examples/resolver/dub.json b/src/ext_depends/D-YAML/examples/resolver/dub.json deleted file mode 100644 index 30b55d8..0000000 --- a/src/ext_depends/D-YAML/examples/resolver/dub.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "resolver", - "targetType": "executable", - "sourceFiles": ["main.d"], - "mainSourceFile": "main.d", - "dependencies": - { - "dyaml": { "version" : "*" } - } -} diff --git a/src/ext_depends/D-YAML/examples/resolver/input.yaml b/src/ext_depends/D-YAML/examples/resolver/input.yaml deleted file mode 100644 index 99b9a5a..0000000 --- a/src/ext_depends/D-YAML/examples/resolver/input.yaml +++ /dev/null @@ -1,8 +0,0 @@ -scalar-red: FF0000 -scalar-orange: FFFF00 -mapping-red: !color-mapping {r: 255, g: 0, b: 0} -mapping-orange: - !color-mapping - r: 255 - g: 255 - b: 0 diff --git a/src/ext_depends/D-YAML/examples/resolver/main.d b/src/ext_depends/D-YAML/examples/resolver/main.d deleted file mode 100644 index f3c08a1..0000000 --- a/src/ext_depends/D-YAML/examples/resolver/main.d +++ /dev/null @@ -1,36 +0,0 @@ -import std.regex; -import std.stdio; -import dyaml; - -int main(string[] args) -{ - string path = "input.yaml"; - if (args.length > 1) - { - path = args[1]; - } - - try - { - - auto loader = Loader.fromFile("input.yaml"); - loader.resolver.addImplicitResolver("!color", regex("[0-9a-fA-F]{6}"), - "0123456789abcdefABCDEF"); - - auto root = loader.load(); - - if(root["scalar-red"].tag == "!color" && - root["scalar-orange"].tag == "!color") - { - writeln("SUCCESS"); - return 0; - } - } - catch(YAMLException e) - { - writeln(e.msg); - } - - writeln("FAILURE"); - return 1; -} diff --git a/src/ext_depends/D-YAML/examples/tojson/dub.json b/src/ext_depends/D-YAML/examples/tojson/dub.json deleted file mode 100644 index ba014b8..0000000 --- a/src/ext_depends/D-YAML/examples/tojson/dub.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "tojson", - "targetType": "executable", - "dependencies": - { - "dyaml": "*" - } -} diff --git a/src/ext_depends/D-YAML/examples/tojson/source/app.d b/src/ext_depends/D-YAML/examples/tojson/source/app.d deleted file mode 100644 index 654274f..0000000 --- a/src/ext_depends/D-YAML/examples/tojson/source/app.d +++ /dev/null @@ -1,54 +0,0 @@ -module dyaml.tojson; -import std.datetime; -import std.json; -import std.stdio; -import dyaml; - -void main() -{ - auto doc = Loader.fromFile(stdin).load(); - auto json = doc.toJSON; - writeln(json.toPrettyString); -} - -JSONValue toJSON(Node node) -{ - JSONValue output; - final switch (node.type) - { - case NodeType.sequence: - output = JSONValue(string[].init); - foreach (Node seqNode; node) - { - output.array ~= seqNode.toJSON(); - } - break; - case NodeType.mapping: - output = JSONValue(string[string].init); - foreach (Node keyNode, Node valueNode; node) - { - output[keyNode.as!string] = valueNode.toJSON(); - } - break; - case NodeType.string: - output = node.as!string; - break; - case NodeType.integer: - output = node.as!long; - break; - case NodeType.decimal: - output = node.as!real; - break; - case NodeType.boolean: - output = node.as!bool; - break; - case NodeType.timestamp: - output = node.as!SysTime.toISOExtString(); - break; - case NodeType.merge: - case NodeType.null_: - case NodeType.binary: - case NodeType.invalid: - } - return output; -} diff --git a/src/ext_depends/D-YAML/examples/yaml_bench/dub.json b/src/ext_depends/D-YAML/examples/yaml_bench/dub.json deleted file mode 100644 index b4e778f..0000000 --- a/src/ext_depends/D-YAML/examples/yaml_bench/dub.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "benchmark", - "targetType": "executable", - "sourceFiles": ["yaml_bench.d"], - "mainSourceFile": "yaml_bench.d", - "dependencies": - { - "dyaml": { "version" : "*" } - } -} diff --git a/src/ext_depends/D-YAML/examples/yaml_bench/yaml_bench.d b/src/ext_depends/D-YAML/examples/yaml_bench/yaml_bench.d deleted file mode 100644 index bb8446e..0000000 --- a/src/ext_depends/D-YAML/examples/yaml_bench/yaml_bench.d +++ /dev/null @@ -1,179 +0,0 @@ - -module dyaml.yaml_bench; -//Benchmark that loads, and optionally extracts data from and/or emits a YAML file. - -import std.algorithm; -import std.conv; -import std.datetime.systime; -import std.datetime.stopwatch; -import std.file; -import std.getopt; -import std.range; -import std.stdio; -import std.string; -import dyaml; - -///Get data out of every node. -void extract(ref Node document) @safe -{ - void crawl(ref Node root) @safe - { - final switch (root.nodeID) - { - case NodeID.scalar: - switch(root.tag) - { - case "tag:yaml.org,2002:null": auto value = root.as!YAMLNull; break; - case "tag:yaml.org,2002:bool": auto value = root.as!bool; break; - case "tag:yaml.org,2002:int": auto value = root.as!long; break; - case "tag:yaml.org,2002:float": auto value = root.as!real; break; - case "tag:yaml.org,2002:binary": auto value = root.as!(ubyte[]); break; - case "tag:yaml.org,2002:timestamp": auto value = root.as!SysTime; break; - case "tag:yaml.org,2002:str": auto value = root.as!string; break; - default: writeln("Unrecognozed tag: ", root.tag); - } - break; - case NodeID.sequence: - foreach(ref Node node; root) - { - crawl(node); - } - break; - case NodeID.mapping: - foreach(ref Node key, ref Node value; root) - { - crawl(key); - crawl(value); - } - break; - case NodeID.invalid: - assert(0); - } - } - - crawl(document); -} - -void main(string[] args) //@safe -{ - import std.array : array; - bool get = false; - bool dump = false; - bool reload = false; - bool quiet = false; - bool verbose = false; - bool scanOnly = false; - uint runs = 1; - - auto help = getopt( - args, - "get|g", "Extract data from the file (using Node.as()).", &get, - "dump|d", "Dump the loaded data (to YAML_FILE.dump).", &dump, - "runs|r", "Repeat parsing the file NUM times.", &runs, - "reload", "Reload the file from the diskl on every repeat By default,"~ - " the file is loaded to memory once and repeatedly parsed from memory.", &reload, - "quiet|q", "Don't print anything.", &quiet, - "verbose|v", "Print even more.", &verbose, - "scan-only|s", "Do not execute the entire parsing process, only scanning. Overrides '--dump'", &scanOnly - ); - - if (help.helpWanted || (args.length < 2)) - { - defaultGetoptPrinter( - "D:YAML benchmark\n"~ - "Copyright (C) 2011-2018 Ferdinand Majerech, Cameron \"Herringway\" Ross\n"~ - "Usage: yaml_bench [OPTION ...] [YAML_FILE]\n\n"~ - "Loads and optionally extracts data and/or dumps a YAML file.\n", - help.options - ); - return; - } - - string file = args[1]; - - auto stopWatch = StopWatch(AutoStart.yes); - void[] fileInMemory; - if(!reload) { fileInMemory = std.file.read(file); } - void[] fileWorkingCopy = fileInMemory.dup; - auto loadTime = stopWatch.peek(); - stopWatch.reset(); - try - { - // Instead of constructing a resolver/constructor with each Loader, - // construct them once to remove noise when profiling. - auto resolver = Resolver.withDefaultResolvers; - - auto constructTime = stopWatch.peek(); - - Node[] nodes; - - void runLoaderBenchmark() //@safe - { - // Loading the file rewrites the loaded buffer, so if we don't reload from - // disk, we need to use a copy of the originally loaded file. - if(reload) { fileInMemory = std.file.read(file); } - else { fileWorkingCopy[] = fileInMemory[]; } - void[] fileToLoad = reload ? fileInMemory : fileWorkingCopy; - - auto loader = Loader.fromBuffer(fileToLoad); - if(scanOnly) - { - loader.scanBench(); - return; - } - - loader.resolver = resolver; - nodes = loader.array; - } - void runDumpBenchmark() @safe - { - if(dump) - { - dumper().dump(File(file ~ ".dump", "w").lockingTextWriter, nodes); - } - } - void runGetBenchmark() @safe - { - if(get) foreach(ref node; nodes) - { - extract(node); - } - } - auto totalTime = benchmark!(runLoaderBenchmark, runDumpBenchmark, runGetBenchmark)(runs); - if (!quiet) - { - auto enabledOptions = - only( - get ? "Get" : "", - dump ? "Dump" : "", - reload ? "Reload" : "", - scanOnly ? "Scan Only": "" - ).filter!(x => x != ""); - if (!enabledOptions.empty) - { - writefln!"Options enabled: %-(%s, %)"(enabledOptions); - } - if (verbose) - { - if (!reload) - { - writeln("Time to load file: ", loadTime); - } - writeln("Time to set up resolver: ", constructTime); - } - writeln("Runs: ", runs); - foreach(time, func, enabled; lockstep(totalTime[], only("Loader", "Dumper", "Get"), only(true, dump, get))) - { - if (enabled) - { - writeln("Average time spent on ", func, ": ", time / runs); - writeln("Total time spent on ", func, ": ", time); - } - } - } - } - catch(YAMLException e) - { - writeln("ERROR: ", e.msg); - } -} diff --git a/src/ext_depends/D-YAML/examples/yaml_gen/config.yaml b/src/ext_depends/D-YAML/examples/yaml_gen/config.yaml deleted file mode 100644 index 5484686..0000000 --- a/src/ext_depends/D-YAML/examples/yaml_gen/config.yaml +++ /dev/null @@ -1,46 +0,0 @@ -root-type: map -documents: 2 -complex-keys: false -collection-keys: false -min-nodes-per-document: 4096 -encoding: utf-8 -indent: 4 -text-width: 40 - -#Note: setting collection probabilities too high can lead to stack overflow as -#we end up with extremely deeply nested structures - -string: - probability: 20 - alphabet: " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_0123456789ábćčďéěǵǧȟíǐǰḱǩĺľḿńňóǒôäṕŕřśšť" - range: {min: 1, max: 40, dist: cubic} -int: - probability: 10 - range: {min: -10000000, max: 10000000, dist: linear} -float: - probability: 10 - range: {min: -10000000.0, max: 10000000.0, dist: linear} -bool: - probability: 10 -timestamp: - probability: 10 - round-chance: 0.9 - range: {min: 0, max: 1231200000000000000, dist: linear} -binary: - probability: 4 - range: {min: 1, max: 400, dist: quadratic} -map: - probability: 2 - range: {min: 1, max: 20, dist: cubic} -omap: - probability: 1 - range: {min: 1, max: 20, dist: cubic} -pairs: - probability: 1 - range: {min: 1, max: 20, dist: cubic} -seq: - probability: 2 - range: {min: 1, max: 20, dist: cubic} -set: - probability: 1 - range: {min: 1, max: 20, dist: cubic} diff --git a/src/ext_depends/D-YAML/examples/yaml_gen/dub.json b/src/ext_depends/D-YAML/examples/yaml_gen/dub.json deleted file mode 100644 index 1f5a2d1..0000000 --- a/src/ext_depends/D-YAML/examples/yaml_gen/dub.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "yaml_gen", - "targetType": "executable", - "sourceFiles": ["yaml_gen.d"], - "mainSourceFile": "yaml_gen.d", - "dependencies": - { - "dyaml": { "version" : "*" } - } -} diff --git a/src/ext_depends/D-YAML/examples/yaml_gen/yaml_gen.d b/src/ext_depends/D-YAML/examples/yaml_gen/yaml_gen.d deleted file mode 100644 index b970c31..0000000 --- a/src/ext_depends/D-YAML/examples/yaml_gen/yaml_gen.d +++ /dev/null @@ -1,316 +0,0 @@ - -///Random YAML generator. Used to generate benchmarking inputs. - -import std.algorithm; -import std.conv; -import std.datetime; -import std.math; -import std.random; -import std.stdio; -import std.string; -import dyaml; - - -Node config; -Node function(bool)[string] generators; -auto typesScalar = ["string", "int", "float", "bool", "timestamp", "binary"]; -auto typesScalarKey = ["string", "int", "float", "timestamp"]; -auto typesCollection = ["map","omap", "pairs", "seq", "set"]; -ulong minNodesDocument; -ulong totalNodes; - -static this() -{ - generators["string"] = &genString; - generators["int"] = &genInt; - generators["float"] = &genFloat; - generators["bool"] = &genBool; - generators["timestamp"] = &genTimestamp; - generators["binary"] = &genBinary; - generators["map"] = &genMap; - generators["omap"] = &genOmap; - generators["pairs"] = &genPairs; - generators["seq"] = &genSeq; - generators["set"] = &genSet; -} - -real randomNormalized(const string distribution = "linear") -{ - auto generator = Random(unpredictableSeed()); - const r = uniform!"[]"(0.0L, 1.0L, generator); - switch(distribution) - { - case "linear": - return r; - case "quadratic": - return r * r; - case "cubic": - return r * r * r; - default: - writeln("Unknown random distribution: ", distribution, - ", falling back to linear"); - return randomNormalized("linear"); - } -} - -long randomLong(const long min, const long max, const string distribution = "linear") -{ - return min + cast(long)round((max - min) * randomNormalized(distribution)); -} - -real randomReal(const real min, const real max, const string distribution = "linear") -{ - return min + (max - min) * randomNormalized(distribution); -} - -dchar randomChar(const dstring chars) -{ - return chars[randomLong(0, chars.length - 1)]; -} - -string randomType(string[] types) -{ - auto probabilities = new uint[types.length]; - foreach(index, type; types) - { - probabilities[index] = config[type]["probability"].as!uint; - } - return types[dice(probabilities)]; -} - -Node genString(bool root = false) -{ - auto range = config["string"]["range"]; - - auto alphabet = config["string"]["alphabet"].as!dstring; - - const chars = randomLong(range["min"].as!uint, range["max"].as!uint, - range["dist"].as!string); - - dchar[] result = new dchar[chars]; - result[0] = randomChar(alphabet); - foreach(i; 1 .. chars) - { - result[i] = randomChar(alphabet); - } - - return Node(result.to!string); -} - -Node genInt(bool root = false) -{ - auto range = config["int"]["range"]; - - const result = randomLong(range["min"].as!int, range["max"].as!int, - range["dist"].as!string); - - return Node(result); -} - -Node genFloat(bool root = false) -{ - auto range = config["float"]["range"]; - - const result = randomReal(range["min"].as!real, range["max"].as!real, - range["dist"].as!string); - - return Node(result); -} - -Node genBool(bool root = false) -{ - return Node([true, false][randomLong(0, 1)]); -} - -Node genTimestamp(bool root = false) -{ - auto range = config["timestamp"]["range"]; - - auto hnsecs = randomLong(range["min"].as!ulong, range["max"].as!ulong, - range["dist"].as!string); - - if(randomNormalized() <= config["timestamp"]["round-chance"].as!real) - { - hnsecs -= hnsecs % 10000000; - } - - return Node(SysTime(hnsecs)); -} - -Node genBinary(bool root = false) -{ - auto range = config["binary"]["range"]; - - const bytes = randomLong(range["min"].as!uint, range["max"].as!uint, - range["dist"].as!string); - - ubyte[] result = new ubyte[bytes]; - foreach(i; 0 .. bytes) - { - result[i] = cast(ubyte)randomLong(0, 255); - } - - return Node(result); -} - -Node nodes(const bool root, Node range, const string tag, const bool set = false) -{ - auto types = config["collection-keys"].as!bool ? typesCollection : []; - types ~= (set ? typesScalarKey : typesScalar); - - Node[] nodes; - if(root) - { - while(!(totalNodes >= minNodesDocument)) - { - nodes.assumeSafeAppend; - nodes ~= generateNode(randomType(types)); - } - } - else - { - const elems = randomLong(range["min"].as!uint, range["max"].as!uint, - range["dist"].as!string); - - nodes = new Node[elems]; - foreach(i; 0 .. elems) - { - nodes[i] = generateNode(randomType(types)); - } - } - - return Node(nodes, tag); -} - -Node genSeq(bool root = false) -{ - return nodes(root, config["seq"]["range"], "tag:yaml.org,2002:seq"); -} - -Node genSet(bool root = false) -{ - return nodes(root, config["seq"]["range"], "tag:yaml.org,2002:set", true); -} - -Node pairs(bool root, bool complex, Node range, string tag) -{ - Node[] keys, values; - - if(root) - { - while(!(totalNodes >= minNodesDocument)) - { - const key = generateNode(randomType(typesScalarKey ~ (complex ? typesCollection : []))); - // Maps can't contain duplicate keys - if(tag.endsWith("map") && keys.canFind(key)) { continue; } - keys.assumeSafeAppend; - values.assumeSafeAppend; - keys ~= key; - values ~= generateNode(randomType(typesScalar ~ typesCollection)); - } - } - else - { - const pairs = randomLong(range["min"].as!uint, range["max"].as!uint, - range["dist"].as!string); - - keys = new Node[pairs]; - values = new Node[pairs]; - outer: foreach(i; 0 .. pairs) - { - auto key = generateNode(randomType(typesScalarKey ~ (complex ? typesCollection : []))); - // Maps can't contain duplicate keys - while(tag.endsWith("map") && keys[0 .. i].canFind(key)) - { - key = generateNode(randomType(typesScalarKey ~ (complex ? typesCollection : []))); - } - keys[i] = key; - values[i] = generateNode(randomType(typesScalar ~ typesCollection)); - } - } - - return Node(keys, values, tag); -} - -Node genMap(bool root = false) -{ - Node range = config["map"]["range"]; - const complex = config["complex-keys"].as!bool; - - return pairs(root, complex, range, "tag:yaml.org,2002:map"); -} - -Node genOmap(bool root = false) -{ - Node range = config["omap"]["range"]; - const complex = config["complex-keys"].as!bool; - - return pairs(root, complex, range, "tag:yaml.org,2002:omap"); -} - -Node genPairs(bool root = false) -{ - Node range = config["pairs"]["range"]; - const complex = config["complex-keys"].as!bool; - - return pairs(root, complex, range, "tag:yaml.org,2002:pairs"); -} - -Node generateNode(const string type, bool root = false) -{ - ++totalNodes; - return generators[type](root); -} - -Node[] generate(const string configFileName) -{ - config = Loader.fromFile(configFileName).load(); - - minNodesDocument = config["min-nodes-per-document"].as!long; - - Node[] result; - foreach(i; 0 .. config["documents"].as!uint) - { - result ~= generateNode(config["root-type"].as!string, true); - totalNodes = 0; - } - - return result; -} - - -void main(string[] args) -{ - //Help message. - if(args.length == 1) - { - writeln("Usage: yaml_gen FILE [CONFIG_FILE]\n"); - writeln("Generates a random YAML file and writes it to FILE."); - writeln("If provided, CONFIG_FILE overrides the default config file."); - return; - } - - string configFile = args.length >= 3 ? args[2] : "config.yaml"; - - try - { - //Generate and dump the nodes. - Node[] generated = generate(configFile); - - auto dumper = dumper(); - auto encoding = config["encoding"]; - - dumper.indent = config["indent"].as!uint; - dumper.textWidth = config["text-width"].as!uint; - switch(encoding.as!string) - { - case "utf-16": dumper.dump!wchar(File(args[1], "w").lockingTextWriter, generated); break; - case "utf-32": dumper.dump!dchar(File(args[1], "w").lockingTextWriter, generated); break; - default: dumper.dump!char(File(args[1], "w").lockingTextWriter, generated); break; - } - } - catch(YAMLException e) - { - writeln("ERROR: ", e.msg); - } -} diff --git a/src/ext_depends/D-YAML/examples/yaml_stats/dub.json b/src/ext_depends/D-YAML/examples/yaml_stats/dub.json deleted file mode 100644 index c86f091..0000000 --- a/src/ext_depends/D-YAML/examples/yaml_stats/dub.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "yaml_stats", - "targetType": "executable", - "sourceFiles": ["yaml_stats.d"], - "mainSourceFile": "yaml_stats.d", - "dependencies": - { - "dyaml": { "version" : "*" } - } -} diff --git a/src/ext_depends/D-YAML/examples/yaml_stats/small.yaml b/src/ext_depends/D-YAML/examples/yaml_stats/small.yaml deleted file mode 100644 index 4f5c0ea..0000000 --- a/src/ext_depends/D-YAML/examples/yaml_stats/small.yaml +++ /dev/null @@ -1,4 +0,0 @@ -- 1 -- 2 : 'a' - 3 : 'b' -- 4 : [1.0, 2.1, 3.2] diff --git a/src/ext_depends/D-YAML/examples/yaml_stats/yaml_stats.d b/src/ext_depends/D-YAML/examples/yaml_stats/yaml_stats.d deleted file mode 100644 index b3f6c17..0000000 --- a/src/ext_depends/D-YAML/examples/yaml_stats/yaml_stats.d +++ /dev/null @@ -1,106 +0,0 @@ - -///Example D:YAML application that displays statistics about YAML documents. - -import std.stdio; -import std.string; -import dyaml; - - -///Collects statistics about a YAML document and returns them as string. -string statistics(ref Node document) -{ - size_t nodes; - size_t scalars, sequences, mappings; - size_t seqItems, mapPairs; - - size_t[string] tags; - - void crawl(ref Node root) - { - ++nodes; - if((root.tag in tags) is null) - { - tags[root.tag] = 0; - } - ++tags[root.tag]; - final switch (root.nodeID) - { - case NodeID.scalar: - ++scalars; - return; - case NodeID.sequence: - ++sequences; - seqItems += root.length; - foreach(ref Node node; root) - { - crawl(node); - } - return; - case NodeID.mapping: - ++mappings; - mapPairs += root.length; - foreach(ref Node key, ref Node value; root) - { - crawl(key); - crawl(value); - } - return; - case NodeID.invalid: - assert(0); - } - } - - crawl(document); - - string tagStats = "\nTag statistics:\n"; - foreach(tag, count; tags) - { - tagStats ~= format("\n%s : %s", tag, count); - } - - return format( "\nNodes: %s" ~ - "\n\nScalars: %s" ~ - "\nSequences: %s" ~ - "\nMappings: %s" ~ - "\n\nAverage sequence length: %s" ~ - "\nAverage mapping length: %s" ~ - "\n\n%s", - nodes, scalars, sequences, mappings, - sequences == 0.0 ? 0.0 : cast(real)seqItems / sequences, - mappings == 0.0 ? 0.0 : cast(real)mapPairs / mappings, - tagStats); -} - -void main(string[] args) -{ - //Help message - if(args.length == 1) - { - writeln("Usage: yaml_stats [YAML_FILE ...]\n"); - writeln("Analyzes YAML files with provided filenames and displays statistics."); - return; - } - - //Print stats about every document in every file. - foreach(file; args[1 .. $]) - { - writeln("\nFile ", file); - writeln("------------------------------------------------------------"); - try - { - auto loader = Loader.fromFile(file); - - size_t idx = 0; - foreach(ref document; loader) - { - writeln("\nDocument ", idx++); - writeln("----------------------------------------"); - writeln(statistics(document)); - } - } - catch(YAMLException e) - { - writeln("ERROR: ", e.msg); - } - } -} diff --git a/src/ext_depends/D-YAML/testsuite/dub.json b/src/ext_depends/D-YAML/testsuite/dub.json deleted file mode 100644 index fece639..0000000 --- a/src/ext_depends/D-YAML/testsuite/dub.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "testsuite", - "targetType": "executable", - "dependencies": - { - "dyaml": "*" - } -} diff --git a/src/ext_depends/D-YAML/testsuite/source/app.d b/src/ext_depends/D-YAML/testsuite/source/app.d deleted file mode 100644 index 6c26b32..0000000 --- a/src/ext_depends/D-YAML/testsuite/source/app.d +++ /dev/null @@ -1,323 +0,0 @@ -module dyaml.testsuite; - -import dyaml; -import dyaml.event; - -import std.algorithm; -import std.conv; -import std.file; -import std.format; -import std.json; -import std.path; -import std.range; -import std.stdio; -import std.string; -import std.typecons; -import std.utf; - -auto dumpEventString(string str) @safe -{ - string[] output; - try - { - auto events = Loader.fromString(str).parse(); - foreach (event; events) - { - string line; - final switch (event.id) - { - case EventID.scalar: - line = "=VAL "; - if (event.anchor != "") - { - line ~= text("&", event.anchor, " "); - } - if (event.tag != "") - { - line ~= text("<", event.tag, "> "); - } - switch(event.scalarStyle) - { - case ScalarStyle.singleQuoted: - line ~= "'"; - break; - case ScalarStyle.doubleQuoted: - line ~= '"'; - break; - case ScalarStyle.literal: - line ~= "|"; - break; - case ScalarStyle.folded: - line ~= ">"; - break; - default: - line ~= ":"; - break; - } - if (event.value != "") - { - line ~= text(event.value.substitute("\n", "\\n", `\`, `\\`, "\r", "\\r", "\t", "\\t", "\b", "\\b")); - } - break; - case EventID.streamStart: - line = "+STR"; - break; - case EventID.documentStart: - line = "+DOC"; - if (event.explicitDocument) - { - line ~= text(" ---"); - } - break; - case EventID.mappingStart: - line = "+MAP"; - if (event.anchor != "") - { - line ~= text(" &", event.anchor); - } - if (event.tag != "") - { - line ~= text(" <", event.tag, ">"); - } - break; - case EventID.sequenceStart: - line = "+SEQ"; - if (event.anchor != "") - { - line ~= text(" &", event.anchor); - } - if (event.tag != "") - { - line ~= text(" <", event.tag, ">"); - } - break; - case EventID.streamEnd: - line = "-STR"; - break; - case EventID.documentEnd: - line = "-DOC"; - if (event.explicitDocument) - { - line ~= " ..."; - } - break; - case EventID.mappingEnd: - line = "-MAP"; - break; - case EventID.sequenceEnd: - line = "-SEQ"; - break; - case EventID.alias_: - line = text("=ALI *", event.anchor); - break; - case EventID.invalid: - assert(0, "Invalid EventID produced"); - } - output ~= line; - } - } - catch (Exception) {} //Exceptions should just stop adding output - return output.join("\n"); -} - -enum TestState -{ - success, - skipped, - failure -} - -struct TestResult -{ - string name; - TestState state; - string failMsg; - - const void toString(OutputRange)(ref OutputRange writer) - if (isOutputRange!(OutputRange, char)) - { - ubyte statusColour; - string statusString; - final switch (state) { - case TestState.success: - statusColour = 32; - statusString = "Succeeded"; - break; - case TestState.failure: - statusColour = 31; - statusString = "Failed"; - break; - case TestState.skipped: - statusColour = 93; - statusString = "Skipped"; - break; - } - writer.formattedWrite!"[\033[%s;1m%s\033[0m] %s"(statusColour, statusString, name); - if (state != TestState.success) - { - writer.formattedWrite!" (%s)"(failMsg.replace("\n", " ")); - } - } -} - -TestResult runTests(string tml) @safe -{ - TestResult output; - output.state = TestState.success; - auto splitFile = tml.splitter("\n--- "); - output.name = splitFile.front.findSplit("=== ")[2]; - bool loadFailed, shouldFail; - string failMsg; - JSONValue json; - Node[] nodes; - string yamlString; - Nullable!string compareYAMLString; - Nullable!string events; - ulong testsRun; - - void fail(string msg) @safe - { - output.state = TestState.failure; - output.failMsg = msg; - } - void skip(string msg) @safe - { - output.state = TestState.skipped; - output.failMsg = msg; - } - void parseYAML(string yaml) @safe - { - yamlString = yaml; - try { - nodes = Loader.fromString(yamlString).array; - } - catch (Exception e) - { - loadFailed = true; - failMsg = e.msg; - } - } - void compareLineByLine(const string a, const string b, const string msg) @safe - { - foreach (line1, line2; zip(a.lineSplitter, b.lineSplitter)) - { - if (line1 != line2) - { - fail(text(msg, " Got ", line1, ", expected ", line2)); - break; - } - } - } - foreach (section; splitFile.drop(1)) - { - auto splitSection = section.findSplit("\n"); - auto splitSectionHeader = splitSection[0].findSplit(":"); - const splitSectionName = splitSectionHeader[0].findSplit("("); - const sectionName = splitSectionName[0]; - const sectionParams = splitSectionName[2].findSplit(")")[0]; - string sectionData = splitSection[2]; - if (sectionData != "") - { - //< means dedent. - if (sectionParams.canFind("<")) - { - sectionData = sectionData[4..$].substitute("\n ", "\n", "<SPC>", " ", "<TAB>", "\t").toUTF8; - } - else - { - sectionData = sectionData.substitute("<SPC>", " ", "<TAB>", "\t").toUTF8; - } - //Not sure what + means. - } - switch(sectionName) - { - case "in-yaml": - parseYAML(sectionData); - break; - case "in-json": - json = parseJSON(sectionData); - break; - case "test-event": - events = sectionData; - break; - case "error": - shouldFail = true; - testsRun++; - break; - case "out-yaml": - compareYAMLString = sectionData; - break; - case "emit-yaml": - // TODO: Figure out how/if to implement this - //fail("Unhandled test - emit-yaml"); - break; - case "lex-token": - // TODO: Should this be implemented? - //fail("Unhandled test - lex-token"); - break; - case "from": break; - case "tags": break; - default: assert(false, text("Unhandled section ", sectionName, "in ", output.name)); - } - } - if (!loadFailed && !compareYAMLString.isNull && !shouldFail) - { - Appender!string buf; - dumper().dump(buf); - compareLineByLine(buf.data, compareYAMLString.get, "Dumped YAML mismatch"); - testsRun++; - } - if (!loadFailed && !events.isNull && !shouldFail) - { - const compare = dumpEventString(yamlString); - compareLineByLine(compare, events.get, "Event mismatch"); - testsRun++; - } - if (loadFailed && !shouldFail) - { - fail(failMsg); - } - if (shouldFail && !loadFailed) - { - fail("Invalid YAML accepted"); - } - if ((testsRun == 0) && (output.state != TestState.failure)) - { - skip("No tests run"); - } - return output; -} - -// Can't be @safe due to dirEntries() -void main(string[] args) @system -{ - string path = "yaml-test-suite/test"; - - void printResult(string id, TestResult result) - { - writeln(id, " ", result); - } - - if (args.length > 1) - { - path = args[1]; - } - - ulong total; - ulong successes; - foreach (file; dirEntries(path, "*.tml", SpanMode.shallow)) - { - auto result = runTests(readText(file)); - if (result.state == TestState.success) - { - debug(verbose) printResult(file.baseName, result); - successes++; - } - else - { - printResult(file.baseName, result); - } - total++; - } - writefln!"%d/%d tests passed"(successes, total); -} |