diff --git a/aoc2021 b/aoc2021 new file mode 100755 index 0000000..86caa7d Binary files /dev/null and b/aoc2021 differ diff --git a/day.go b/day.go new file mode 100644 index 0000000..ecc2f02 --- /dev/null +++ b/day.go @@ -0,0 +1,6 @@ +package main + +type Day interface { + Answer() string + FollowUp() string +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..e17e8ac --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module unsupervised.ca/aoc2021 + +go 1.17 diff --git a/main.go b/main.go new file mode 100644 index 0000000..0cd1b5c --- /dev/null +++ b/main.go @@ -0,0 +1,45 @@ +package main + +import ( + "fmt" + "os" + "strings" + + "unsupervised.ca/aoc2021/one" +) + +func main() { + args := os.Args + + if len(args) != 2 { + help() + return + } + + flagParts := strings.Split(args[1], "--") + if len(flagParts) != 2 { + fmt.Println("Unable to read day from flag") + } + + var day Day + switch flagParts[1] { + case "one": + day = one.Init("one/input.txt") + default: + fmt.Printf("%q does not have a solution.\n", flagParts[1]) + help() + return + } + + fmt.Printf("The solution for %q is:\n", flagParts[1]) + fmt.Println(day.Answer()) + fmt.Println(day.FollowUp()) +} + +func help() { + fmt.Println("To execute thatguygriff's solutions for Advent of Code execute the command with the day as a flag") + fmt.Println("") + fmt.Printf("%s [--one|--two|--three]\n", os.Args[0]) + fmt.Println("") + fmt.Println("If there is no solution for the flagged day this text will be printed.") +} diff --git a/one/input.txt b/one/input.txt new file mode 100644 index 0000000..e69de29 diff --git a/one/main.go b/one/main.go new file mode 100644 index 0000000..ff6f44d --- /dev/null +++ b/one/main.go @@ -0,0 +1,16 @@ +package one + +type One struct { +} + +func Init(filepath string) *One { + return nil +} + +func (d *One) Answer() string { + return "Hello" +} + +func (d *One) FollowUp() string { + return "World!" +}