58 lines
891 B
Go
58 lines
891 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
func showUsage() {
|
|
print(len(os.Args))
|
|
fmt.Printf("Usage: %s <day> <part> [input.txt]\n", os.Args[0])
|
|
}
|
|
|
|
func main() {
|
|
if (len(os.Args) < 3) {
|
|
showUsage()
|
|
return
|
|
}
|
|
|
|
day := os.Args[1]
|
|
part := os.Args[2]
|
|
|
|
var input_filename string
|
|
if len(os.Args) <= 3 {
|
|
input_filename = "input.txt"
|
|
} else {
|
|
input_filename = os.Args[3]
|
|
}
|
|
|
|
contents, err := os.ReadFile(input_filename)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
lines := strings.Split(strings.TrimRight(string(contents), "\n"), "\n")
|
|
|
|
if day == "1" {
|
|
if part == "1" {
|
|
Day1Part1(lines)
|
|
} else if part == "2" {
|
|
Day1Part2(lines)
|
|
}
|
|
} else if day == "2" {
|
|
if part == "1" {
|
|
Day2Part1(lines)
|
|
} else if part == "2" {
|
|
Day2Part2(lines)
|
|
}
|
|
} else if day == "3" {
|
|
if part == "1" {
|
|
Day3Part1(lines)
|
|
} else if part == "2" {
|
|
Day3Part2(lines)
|
|
}
|
|
}
|
|
}
|