An open API service indexing awesome lists of open source software.

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

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