A CLI tool that generates configuration files for JOJ3.
This commit introduces a new key, `health-check.whitelisted-chars` for repo.toml. It allows TAs to configure repo-wide allowed non ASCII chars for the repo-health-checker binary. It results in a new command line switch, `-whitelisted-chars=X,Y,Z`, in the generated task.json. Co-Authored-By: GitHub Copilot <noreply@microsoft.com> <details> <summary>Copilot Prompt</summary> <br> This repository contains a Python app that does conversion from TOML config files to a complex, multistage JSON config file for an online judge system. For example, under `tests/convert/full`, input are the two TOML files `repo.toml` and `task.toml`, output is one JSON file `task,json`. Now, I want the repo-specific config (**repo.toml**) to accept an extra dotted key, "health-check.whitelisted-chars". This key shall accept an array of UTF-8 non-ASCII characters. To do so, I want you to - Model. Under `joj3_config_generator/models/repo.py`, add an extra field *whitelisted_chars* to class *HealthCheck*, identified by both "whitelisted-chars" and "whitelisted_chars"; - Transforming. Under `joj3_config_generator/transforers/repo.py`, translate the field to an additional command line switch `-whitelisted-chars`, comma-separated. - Other files you deem necessary, based on your understanding of this repo. IMPORTANT. Before you start, explore this repo to under the file structure and file-function relations. This repo uses the PDM package manager. After you finish your work, test your work appropriately. You should create new testcases under `tests/`. - Details: Read the output `task.json` after running the test, to verify whether the command line switch was added to the *Health Check* `stage` or not. </details> Reviewed-on: #29 Reviewed-by: 李衍志523370910113 <jon-lee@sjtu.edu.cn> Reviewed-by: 张泊明518370910136 <bomingzh@sjtu.edu.cn> Co-authored-by: Mack Wang <mac-wang@outlook.com> Co-committed-by: Mack Wang <mac-wang@outlook.com> |
||
|---|---|---|
| .gitea/workflows | ||
| joj3_config_generator | ||
| tests | ||
| .editorconfig | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| LICENSE | ||
| pdm.lock | ||
| pyproject.toml | ||
| README.md | ||
JOJ3-config-generator
Getting Started
For users
- Install Python>=3.9 and pip
- (Optional) Create a virtual environment, check here.
- Install/Upgrade the project by
pip install --force-reinstall --upgrade git+ssh://git@focs.ji.sjtu.edu.cn:2222/JOJ/JOJ3-config-generator.git - Run it by
joj3-config-generator --help
For developers
- Clone this repo by
git clone ssh://git@focs.ji.sjtu.edu.cn:2222/JOJ/JOJ3-config-generator.git - Install Python>=3.9 and PDM
- Change dir to the repo,
cd JOJ3-config-generator - Install deps by
pdm install && pdm run pre-commit install - Run the cli app by
pdm run app --help - Check other commands or scripts with
pdm run --list
How to use?
joj3-config-generator convertfunction is now supported, currently support one argument as input, it indicates the convert root- default value on the server can be given as
/home/tt/.config/joj - NOTE: the user should ensure that the ideal
repo.tomlfile is in the sub-directory of the convert root - the intended immutable files should be placed at a sub-directory named
immutable_filesat same position as therepo.tomlfile
- default value on the server can be given as
$ tree .
.
|- immutable_files
| |-- push.yaml
| |-- release.yaml
|-- repo.toml
- sample command on the server
joj3-config-generator convert /home/tt/.config/joj