Skip to content

Commit 19f01c1

Browse files
Expose all files in online editor (exercism#2195)
1 parent e8e997f commit 19f01c1

23 files changed

Lines changed: 108 additions & 0 deletions

File tree

bin/site-editor-check.sh

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/usr/bin/env bash
2+
3+
# checks whether all classes and solution stubs are visible in the editor
4+
# (via mentioning in the .meta/config.json)
5+
6+
set -e
7+
8+
root=$(git rev-parse --show-toplevel)
9+
10+
for exercise_type in 'concept' 'practice'; do
11+
group="${root}/exercises/${exercise_type}"
12+
mapfile -t exercises < <(ls "${group}")
13+
for exercise in "${exercises[@]}"; do
14+
exercise_path="${group}/${exercise}"
15+
config_files=$(jq '.files' < "${exercise_path}/.meta/config.json")
16+
declare -A files
17+
for file_type in 'editor' 'solution'; do
18+
for file in $(echo "${config_files}" | jq -r ".${file_type} | @sh"); do
19+
files[${file}]=true
20+
done
21+
done
22+
mapfile -t java_files < <(find "${exercise_path}/src/main" -type f -name '*.java')
23+
for java_file in "${java_files[@]}"; do
24+
file_location=${java_file//${exercise_path}\//}
25+
if [[ "${files["'${file_location}'"]}" != 'true' ]]; then
26+
echo "${exercise_type}/${exercise}/${file_location} is not available in the editor"
27+
exit 1
28+
fi
29+
done
30+
done
31+
done

exercises/practice/allergies/.meta/config.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@
3131
"solution": [
3232
"src/main/java/Allergies.java"
3333
],
34+
"editor": [
35+
"src/main/java/Allergen.java"
36+
],
3437
"test": [
3538
"src/test/java/AllergiesTest.java"
3639
],

exercises/practice/alphametics/.meta/config.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
"solution": [
2121
"src/main/java/Alphametics.java"
2222
],
23+
"editor": [
24+
"src/main/java/UnsolvablePuzzleException.java"
25+
],
2326
"test": [
2427
"src/test/java/AlphameticsTest.java"
2528
],

exercises/practice/bank-account/.meta/config.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
"solution": [
1919
"src/main/java/BankAccount.java"
2020
],
21+
"editor": [
22+
"src/main/java/BankAccountActionInvalidException.java"
23+
],
2124
"test": [
2225
"src/test/java/BankAccountTest.java"
2326
],

exercises/practice/binary-search/.meta/config.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
"solution": [
3030
"src/main/java/BinarySearch.java"
3131
],
32+
"editor": [
33+
"src/main/java/ValueNotFoundException.java"
34+
],
3235
"test": [
3336
"src/test/java/BinarySearchTest.java"
3437
],

exercises/practice/circular-buffer/.meta/config.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
"solution": [
2525
"src/main/java/CircularBuffer.java"
2626
],
27+
"editor": [
28+
"src/main/java/BufferIOException.java"
29+
],
2730
"test": [
2831
"src/test/java/CircularBufferTest.java"
2932
],

exercises/practice/dominoes/.meta/config.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
"solution": [
2020
"src/main/java/Dominoes.java"
2121
],
22+
"editor": [
23+
"src/main/java/ChainNotFoundException.java",
24+
"src/main/java/Domino.java"
25+
],
2226
"test": [
2327
"src/test/java/DominoesTest.java"
2428
],

exercises/practice/error-handling/.meta/config.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
"solution": [
2020
"src/main/java/ErrorHandling.java"
2121
],
22+
"editor": [
23+
"src/main/java/CustomCheckedException.java",
24+
"src/main/java/CustomUncheckedException.java"
25+
],
2226
"test": [
2327
"src/test/java/ErrorHandlingTest.java"
2428
],

exercises/practice/go-counting/.meta/config.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
"solution": [
2121
"src/main/java/GoCounting.java"
2222
],
23+
"editor": [
24+
"src/main/java/Player.java"
25+
],
2326
"test": [
2427
"src/test/java/GoCountingTest.java"
2528
],

exercises/practice/hangman/.meta/config.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@
1212
"solution": [
1313
"src/main/java/Hangman.java"
1414
],
15+
"editor": [
16+
"src/main/java/Output.java",
17+
"src/main/java/Part.java",
18+
"src/main/java/Status.java"
19+
],
1520
"test": [
1621
"src/test/java/HangmanTest.java"
1722
],

0 commit comments

Comments
 (0)