Files
aoc2021/main.go
2021-12-09 19:52:34 +00:00

70 lines
1.5 KiB
Go

package main
import (
"fmt"
"os"
"strings"
"unsupervised.ca/aoc2021/eight"
"unsupervised.ca/aoc2021/five"
"unsupervised.ca/aoc2021/four"
"unsupervised.ca/aoc2021/nine"
"unsupervised.ca/aoc2021/one"
"unsupervised.ca/aoc2021/seven"
"unsupervised.ca/aoc2021/six"
"unsupervised.ca/aoc2021/three"
"unsupervised.ca/aoc2021/two"
)
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")
case "two":
day = two.Init("two/input.txt")
case "three":
day = three.Init("three/input.txt")
case "four":
day = four.Init("four/input.txt")
case "five":
day = five.Init("five/input.txt")
case "six":
day = six.Init("six/input.txt")
case "seven":
day = seven.Init("seven/input.txt")
case "eight":
day = eight.Init("eight/input.txt")
case "nine":
day = nine.Init("nine/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.")
}