1
0
Fork 0
mirror of https://github.com/clechasseur/auxiliaire.git synced 2025-12-14 06:48:59 +01:00
Your friendly Exercism assistant
renovate[bot] a441d630e3
chore(deps): update swatinem/rust-cache action to v2.8.2 (#256)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 22:55:35 -05:00
.github chore(deps): update swatinem/rust-cache action to v2.8.2 (#256) 2025-11-30 22:55:35 -05:00
bruno/Exercism chore: more sample requests (#111) 2024-11-27 00:36:35 -05:00
playground feat!: implement iterations sync 2024-09-20 23:46:27 -04:00
resources/tests feat!: refactor new backup state, detect existing iterations from disk 2024-09-20 23:46:27 -04:00
src fix: edition 2024, dependencies update (#248) 2025-11-08 19:11:21 -05:00
tests fix: edition 2024, dependencies update (#248) 2025-11-08 19:11:21 -05:00
.gitignore chore: sync from template 2025-04-06 23:15:01 -04:00
Cargo.lock fix(deps): update rust crate clap to 4.5.53 (#250) 2025-11-24 01:14:17 -05:00
Cargo.toml fix(deps): update rust crate clap to 4.5.53 (#250) 2025-11-24 01:14:17 -05:00
CODE_OF_CONDUCT.md chore: merge changes from template 2024-07-26 20:43:25 -04:00
codecov.yml chore: merge updates from template (#189) 2025-05-26 02:00:22 -04:00
CONTRIBUTING.md chore: merge changes from template 2024-07-26 20:43:25 -04:00
DEVELOPMENT.md chore: merge workflow simplifications from template (#190) 2025-05-27 00:14:03 -04:00
justfile chore: bring updates from template (#249) 2025-11-15 23:27:09 -05:00
LICENSE chore: update some docs 2025-02-02 21:17:22 -05:00
msrv-pins.toml fix: run cargo update to get security fix for openssl (#138) 2025-02-02 20:26:15 -05:00
README.md fix(deps): update rust crate mini_exercism to v7 (#238) 2025-10-12 13:38:46 -04:00
renovate.json Initial commit 2024-04-16 07:23:18 -04:00
rustfmt.toml Initial commit 2024-04-16 07:23:18 -04:00
SECURITY.md chore: sync from template 2025-04-06 23:15:01 -04:00
tarpaulin.toml chore: merge updates from template (#189) 2025-05-26 02:00:22 -04:00

auxiliaire

CI codecov Security audit crates.io downloads Contributor Covenant

auxiliaire is a command-line tool designed to provide utilities to users of the Exercism.org website, like solutions backup, etc.

Exerci-what?

Exercism 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.

Installing

Installing and using auxiliaire can be done simply by downloading the executable appropriate for your platform from the project's Releases page and saving it to a location in your PATH.

If you have Rust 1.88.0 or greater installed, you can also compile and install auxiliaire from source via cargo:

cargo install auxiliaire --locked

If you have cargo-binstall, you can use it to download and install auxiliaire from binaries:

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.

% auxiliaire backup -h
Download Exercism.org solutions for backup

Usage: auxiliaire backup [OPTIONS] <PATH>

Arguments:
  <PATH>  Path where to store the downloaded solutions

Options:
      --token <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 <TRACK>
          Only download solutions in the given track(s) (can be used multiple times)
  -e, --exercise <EXERCISE>
          Only download solutions for the given exercise(s) (can be used multiple times)
  -s, --status <STATUS>
          Only download solutions with the given status (or greater) [default: any] [possible values: any, submitted, completed, published]
  -o, --overwrite <OVERWRITE>
          How to handle solutions that already exist on disk [default: if-newer] [possible values: always, if-newer, never]
  -i, --iterations <ITERATIONS_SYNC_POLICY>
          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 <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 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.

Questions? Comments?

auxiliaire is still in development, so issues may arise. For instructions on filing bug reports or feature requests, see CONTRIBUTING.