9 "adventofcode2023/utils"
10 "adventofcode2023/day01"
12 // Usage: go run main.go <NN>
13 // assumes input is in day<NN>/input.txt
16 fmt.Printf("Running day %02d\n", d)
20 fmt.Printf("part 1: %d\n", day01.Part1(utils.Readfile(d)))
21 fmt.Printf("part 2: %d\n", day01.Part2(utils.Readfile(d)))
23 panic(fmt.Errorf("no such day: %d", d))
27 // Reads day from os.Args.
30 if len(os.Args) == 1 {
34 if os.Args[1] == "next" {
38 day := utils.MustAtoi(os.Args[1])
44 os.Mkdir(fmt.Sprintf("day%02d", n), 0755)
45 f, err := os.Create(fmt.Sprintf("day%02d/day%02d.go", n, n))
48 f.WriteString(fmt.Sprintf(`package day%02d
50 func Part1(input string) int {
54 func Part2(input string) int {
58 fmt.Printf("wrote day%02d/day%02d.go\n", n, n)
60 f, err = os.Create(fmt.Sprintf("day%02d/day%02d_test.go", n, n))
63 f.WriteString(fmt.Sprintf(`package day%02d
68 "github.com/stretchr/testify/require"
71 func TestPart1(t *testing.T) {
73 require.Equal(t, 0, r)
76 func TestPart2(t *testing.T) {
78 require.Equal(t, 0, r)
81 fmt.Printf("wrote day%02d/day%02d_test.go\n", n, n)