Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions building/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -820,6 +820,13 @@
"title": "Snippet Extractor",
"blurb": ""
},
{
"uuid": "0d24b14c-8995-4ca5-8e5f-6ca2dcc5318c",
"slug": "tooling/cli",
"path": "building/tooling/cli.md",
"title": "Exercism CLI",
"blurb": ""
},
{
"uuid": "ba393f61-0f7d-4178-922a-c16cda052338",
"slug": "tooling/test-generators",
Expand Down
22 changes: 22 additions & 0 deletions building/tooling/cli.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Exercism CLI

The [Exercism CLI][cli] lets students download exercises and submit solutions to the site.
It also supports the `exercism test` command, which then runs the track-specific command to run the tests.

## Adding new language

The track-specific test commands are defined in a [configuration file][test-configurations].
You can add support for your language by adding an entry to that [configuration file][test-configurations], where the key is the track's slug.

### Test command placeholders

There are two placeholders that can be used in the track-specific command:

- `{{test_files}}`: a space-separated list of the test files (as found in the `.files.test` key in the exercise's `.meta/config.json` file)
- `{{solution_files}}`: a space-separated list of the solution files (as found in the `.files.solution` key in the exercise's `.meta/config.json` file)

Here is an [example pull request][example-pr] that adds support for the Arturo language.

[cli]: https://github.com/exercism/cli
[example-pr]: https://github.com/exercism/cli/pull/1147/files
[test-configurations]: https://github.com/exercism/cli/blob/main/workspace/test_configurations.go#L63
3 changes: 2 additions & 1 deletion building/tracks/new/configure-tooling.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Configure tooling

There are two bits of tooling that you can optionally tweak for your track:
There are three bits of tooling that you can optionally tweak for your track:

- The **[Lines of Code Counter](/docs/building/tooling/lines-of-code-counter)**
- The **[Snippet Extractor](/docs/building/tooling/snippet-extractor)**
- The **[Exercism CLI](/docs/building/tooling/cli)**

While tweaking these tools is optional, doing so can make your track's integration into the website just _that_ bit better.