blob: c0c726197dceec1bac07d66997226d757b0833ef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
package exercises
import (
"errors"
"os"
"github.com/pelletier/go-toml/v2"
)
var ErrExerciseNotFound = errors.New("exercise not found")
type Info struct {
Exercises []Exercise
}
func List() ([]Exercise, error) {
var info Info
data, err := os.ReadFile("info.toml")
if err != nil {
return info.Exercises, err
}
if err := toml.Unmarshal(data, &info); err != nil {
return info.Exercises, err
}
return info.Exercises, nil
}
func Find(exercise string) (Exercise, error) {
exs, err := List()
if err != nil {
return Exercise{}, err
}
for _, ex := range exs {
if ex.Name == exercise {
return ex, nil
}
}
return Exercise{}, ErrExerciseNotFound
}
|