https://github.com/ioi-2017/tps
Task Preparation System (TPS) - Command-Line Interface
https://github.com/ioi-2017/tps
shell-scripts task-preparation
Last synced: 4 months ago
JSON representation
Task Preparation System (TPS) - Command-Line Interface
- Host: GitHub
- URL: https://github.com/ioi-2017/tps
- Owner: ioi-2017
- License: mit
- Created: 2017-10-29T01:06:38.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-07-19T23:19:13.000Z (over 1 year ago)
- Last Synced: 2024-11-26T05:51:54.235Z (about 1 year ago)
- Topics: shell-scripts, task-preparation
- Language: C++
- Homepage:
- Size: 8.35 MB
- Stars: 41
- Watchers: 4
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-3RD-PARTY.txt
Awesome Lists containing this project
README
Task Preparation System (TPS)
================
The Task Preparation System (TPS) is used to prepare tasks (problems) in programming contests.
It has been developed and first used in the [IOI 2017](http://ioi2017.org/)
in Tehran, Iran.
TPS consists of a command-line interface and a web interface.
The command-line interface provides a set of scripts for preparing the tasks, while
the web interface provides an interface to visualize the tasks,
and prepare them for final release.
The TPS command-line interface is provided in this repository.
You may find the web interface at https://github.com/ioi-2017/tps-web.
Installation
------------
Make sure you have the `curl` command installed.
Then, run the following command to install TPS on Linux/MacOS/Windows (with WSL):
```bash
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ioi-2017/tps/master/online-installer/install.sh)"
```
This will add `tps` command to PATH and also adds bash completion for it. For other installation methods
please refer to the detailed documentation in the [`docs`](docs) directory.
Behavior
--------
The `tps` command is a light weight script that locates `BASE_DIR`, the directory containing `problem.json`, and then, runs the corresponding script in the `scripts` directory.
For example, `tps compile a.cpp` runs `${BASE_DIR}/scritps/compile.sh` with argument `a.cpp`.
The contents of `scripts` directory in `${BASE_DIR}` of a problem are originated from `scripts` directory in TPS repository, but they can be modified/customized for a specific problem.
Anyway, they can be updated using command `upgrade-scripts.sh`.
It helps a lot in detecting changes and conflicts.
TPS also provides `tps init`, a command to bootstrap a new task based on a given template.
Documentation
-------------
A detailed documentation is provided in the [`docs`](docs) directory.
License
-------
This software is distributed under the MIT license (see LICENSE.txt),
and uses some third party codes that are distributed under their own terms
(see LICENSE-3RD-PARTY.txt).
Copyright
---------
Copyright (c) 2017, IOI 2017 Host Technical Committee