-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
65 lines (59 loc) · 1.6 KB
/
main.go
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package main
import (
"adventofcode2019/day1"
"adventofcode2019/day10"
"adventofcode2019/day11"
"adventofcode2019/day12"
"adventofcode2019/day13"
"adventofcode2019/day15"
"adventofcode2019/day16"
"adventofcode2019/day2"
"adventofcode2019/day24"
"adventofcode2019/day3"
"adventofcode2019/day4"
"adventofcode2019/day5"
"adventofcode2019/day6"
"adventofcode2019/day7"
"adventofcode2019/day8"
"adventofcode2019/day9"
"adventofcode2019/input"
"adventofcode2019/logger"
"flag"
"fmt"
"strconv"
)
var day = flag.Int("day", 0, "number of the day")
var test = flag.Bool("test", false, "if to use test input")
var loglevel = flag.String("loglevel", "info", "log level")
var part = flag.Int("part", 1, "part of the task")
var days = map[string][]func(string) string{
"day1": {day1.Part2},
"day2": {day2.Part1, day2.Part2},
"day3": {day3.Part1, day3.Part2},
"day4": {day4.Part1, day4.Part2},
"day5": {day5.Part1, day5.Part2},
"day6": {day6.Part1, day6.Part2},
"day7": {day7.Part1, day7.Part2},
"day8": {day8.Part1, day8.Part2},
"day9": {day9.Part1, day9.Part2},
"day10": {day10.Part1, day10.Part2},
"day11": {day11.Part1, day11.Part2},
"day12": {day12.Part1, day12.Part2},
"day13": {day13.Part1, day13.Part2},
"day15": {day15.Part1, day15.Part2},
"day16": {day16.Part1, day16.Part2},
"day24": {day24.Part1, day24.Part2},
}
func main() {
flag.Parse()
logger.Init(*loglevel)
funcs, ok := days["day"+strconv.Itoa(*day)]
if ok {
res := funcs[*part-1](input.FilePath(*day, *test))
if res != "" {
fmt.Println(res)
}
} else {
fmt.Printf("solution for a day number %v is not found", *day)
}
}