https://github.com/clechasseur/auxiliaire
Your friendly Exercism assistant
https://github.com/clechasseur/auxiliaire
cli exercism rust rust-lang
Last synced: about 1 year ago
JSON representation
Your friendly Exercism assistant
- Host: GitHub
- URL: https://github.com/clechasseur/auxiliaire
- Owner: clechasseur
- License: mit
- Created: 2024-04-16T11:23:16.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-07T03:26:38.000Z (about 1 year ago)
- Last Synced: 2025-04-10T04:48:24.244Z (about 1 year ago)
- Topics: cli, exercism, rust, rust-lang
- Language: Rust
- Homepage:
- Size: 352 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# auxiliaire
[](https://github.com/clechasseur/auxiliaire/actions/workflows/ci.yml) [](https://codecov.io/gh/clechasseur/auxiliaire) [](https://github.com/clechasseur/auxiliaire/actions/workflows/audit-check.yml) [](https://crates.io/crates/auxiliaire) [](https://crates.io/crates/auxiliaire) [](CODE_OF_CONDUCT.md)
`auxiliaire` is a command-line tool designed to provide utilities to users of the [Exercism.org](https://exercism.org) website, like solutions backup, etc.
## Exerci-what?
[Exercism](https://exercism.org) is a free, not-for-profit platform to learn new programming languages.
It supports a web editor for solving exercises, mentoring with real humans and a lot more.
For more information, see [its about page](https://exercism.org/about).
## Installing
Installing and using `auxiliaire` can be done simply by downloading the executable appropriate for your platform from the [project's Releases page](https://github.com/clechasseur/auxiliaire/releases) and saving it to a location in your PATH.
If you have Rust **1.83.0** or greater installed, you can also compile and install `auxiliaire` from source via `cargo`:
```sh
cargo install auxiliaire --locked
```
If you have [`cargo-binstall`](https://github.com/cargo-bins/cargo-binstall), you can use it to download and install `auxiliaire` from binaries:
```sh
cargo binstall auxiliaire
```
## Usage
To see all commands supported by `auxiliaire`, simply run it with `-h` (for short help) or `--help` (for long help).
### `backup` command
This command can be used to download all solutions you submitted to the Exercism platform for backup.
```sh
% auxiliaire backup -h
Download Exercism.org solutions for backup
Usage: auxiliaire backup [OPTIONS]
Arguments:
Path where to store the downloaded solutions
Options:
--token
Exercism.org API token; if unspecified, CLI token will be used instead
-v, --verbose...
Increase logging verbosity
-q, --quiet...
Decrease logging verbosity
-t, --track
Only download solutions in the given track(s) (can be used multiple times)
-e, --exercise
Only download solutions for the given exercise(s) (can be used multiple times)
-s, --status
Only download solutions with the given status (or greater) [default: any] [possible values: any, submitted, completed, published]
-o, --overwrite
How to handle solutions that already exist on disk [default: if-newer] [possible values: always, if-newer, never]
-i, --iterations
Whether to also back up iterations and how [default: do-not-sync] [possible values: do-not-sync, new, full-sync, clean-up]
--dry-run
Determine what solutions to back up without downloading them
-m, --max-downloads
Maximum number of concurrent downloads [default: 4]
-h, --help
Print help (see more with '--help')
```
By default, using this command will download all submitted solutions, for all exercises, for all tracks.
It's possible to narrow the solutions to back up via the command-line arguments (see above).
When `auxiliaire` downloads a solution, it stores a backup state file in the solution folder in the `.auxiliaire` directory.
This file is used to determine whether a solution has been updated with (a) new iteration(s).
When this occurs, by default, `auxiliaire` will download the new version; this can be controlled via the `--overwrite` argument.
It is also possible to download _every_ iteration of each solution via the `--iterations` argument.
Iterations will be stored in a subdirectory called `_iterations`.
All iterations submitted will be downloaded, unless `--status published` is used, in which case only published iterations will be kept.
In order to communicate with the Exercism platform, `auxiliaire` needs an API token.
By default, if the [Exercism CLI tool](https://exercism.org/docs/using/solving-exercises/working-locally) is installed, `auxiliaire` will reuse the API token configured for it.
If the Exercism CLI is not installed, a valid API token will need to be passed to `auxiliaire` via the `--token` argument.
This token can be found in the [Exercism Settings](https://exercism.org/settings/api_cli).
## Questions? Comments?
`auxiliaire` is still in development, so issues may arise.
For instructions on filing bug reports or feature requests, see [CONTRIBUTING](./CONTRIBUTING.md).