aboutsummaryrefslogtreecommitdiffstats
path: root/src/exercises/exercise.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/exercises/exercise.go')
-rw-r--r--src/exercises/exercise.go28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/exercises/exercise.go b/src/exercises/exercise.go
index 2783381..22700c8 100644
--- a/src/exercises/exercise.go
+++ b/src/exercises/exercise.go
@@ -1,11 +1,29 @@
package exercises
+import (
+ "os"
+ "regexp"
+)
+
+var notDoneRegex = regexp.MustCompile(`(?m)^\s*///?\s*I\s+AM\s+NOT\s+DONE`)
+
type Exercise struct {
- Name string
- Path string
- Mode string
- Hint string
- State State
+ Name string
+ Path string
+ Mode string
+ Hint string
+}
+
+func (e Exercise) State() State {
+ data, err := os.ReadFile(e.Path)
+ if err != nil {
+ return Pending
+ }
+
+ if notDoneRegex.Match(data) {
+ return Pending
+ }
+ return Done
}
type State int