.gitignore
LICENSE
README.md
pyproject.toml
pytest.ini
setup.py
.github/workflows/pypi.yaml
.github/workflows/pytest.yml
challtools/__init__.py
challtools/challenge.schema.json
challtools/codes.yml
challtools/constants.py
challtools/context.py
challtools/entry.py
challtools/exceptions.py
challtools/plugin.py
challtools/types.py
challtools/utils.py
challtools/validator.py
challtools.egg-info/PKG-INFO
challtools.egg-info/SOURCES.txt
challtools.egg-info/dependency_links.txt
challtools.egg-info/entry_points.txt
challtools.egg-info/requires.txt
challtools.egg-info/top_level.txt
challtools/builtins/__init__.py
challtools/builtins/allchalls.py
challtools/builtins/build.py
challtools/builtins/compose.py
challtools/builtins/ensureid.py
challtools/builtins/init.py
challtools/builtins/push.py
challtools/builtins/solve.py
challtools/builtins/spoilerfree.py
challtools/builtins/start.py
challtools/builtins/validate.py
challtools/templates/default/DESCRIPTION
challtools/templates/default/challenge.yml
challtools/templates/flask/DESCRIPTION
challtools/templates/flask/challenge.yml
challtools/templates/flask/container/Dockerfile
challtools/templates/flask/container/nginx.conf
challtools/templates/flask/container/server.py
challtools/templates/php/DESCRIPTION
challtools/templates/php/challenge.yml
challtools/templates/php/container/Dockerfile
challtools/templates/php/container/index.php
challtools/templates/ssh/DESCRIPTION
challtools/templates/ssh/challenge.yml
challtools/templates/ssh/container/Dockerfile
challtools/templates/ssh/container/service
challtools/templates/ssh/container/sshd_config
challtools/templates/tcp_nsjail/DESCRIPTION
challtools/templates/tcp_nsjail/challenge.yml
challtools/templates/tcp_nsjail/container/Dockerfile
challtools/templates/tcp_nsjail/container/service
challtools/templates/tls_nsjail/DESCRIPTION
challtools/templates/tls_nsjail/challenge.yml
challtools/templates/tls_nsjail/container/Dockerfile
challtools/templates/tls_nsjail/container/haproxy.cfg
challtools/templates/tls_nsjail/container/service
tests/conftest.py
tests/test_cli.py
tests/test_templates.py
tests/test_utils.py
tests/test_validator.py
tests/utils.py
tests/templates/broken_solution/challenge.yml
tests/templates/broken_solution/container/Dockerfile
tests/templates/broken_solution/container/service
tests/templates/broken_solution/solution/Dockerfile
tests/templates/build_error/challenge.yml
tests/templates/build_error/container/Dockerfile
tests/templates/ctf_authors/ctf.yml
tests/templates/ctf_authors/chall1/challenge.yml
tests/templates/ctf_authors/chall2/challenge.yml
tests/templates/ctf_authors/chall3/challenge.yml
tests/templates/dockerfile_parse_error/challenge.yml
tests/templates/dockerfile_parse_error/container/Dockerfile
tests/templates/dockerfile_parse_error/container/service
tests/templates/has_id/challenge.yml
tests/templates/minimal_valid/challenge.yml
tests/templates/plugin_dir/.challtools/plugins/test_plugin/__init__.py
tests/templates/plugin_dir/subdir/.gitkeep
tests/templates/regex_flag/challenge.yml
tests/templates/schema_violation/challenge.yml
tests/templates/schema_violation_list/challenge.yml
tests/templates/simple_ctf/ctf.yml
tests/templates/simple_ctf/chall1/challenge.yml
tests/templates/simple_ctf/chall2/challenge.yml
tests/templates/simple_ctf/chall3/challenge.yml
tests/templates/subdir/challenge.yml
tests/templates/subdir/subdir/.gitkeep
tests/templates/trivial_tcp/challenge.yml
tests/templates/trivial_tcp/container/Dockerfile
tests/templates/trivial_tcp/container/service
tests/templates/trivial_tcp_solution/challenge.yml
tests/templates/trivial_tcp_solution/container/Dockerfile
tests/templates/trivial_tcp_solution/container/service
tests/templates/trivial_tcp_solution/solution/Dockerfile