build: add a new target to create files for a new day
This commit is contained in:
48
Makefile
48
Makefile
@@ -1,7 +1,7 @@
|
||||
GO = go
|
||||
BIN = bin/aoc
|
||||
|
||||
.PHONY: build test clean
|
||||
.PHONY: build test clean new
|
||||
|
||||
build:
|
||||
@mkdir -p $(dir $(BIN))
|
||||
@@ -12,3 +12,49 @@ test:
|
||||
|
||||
clean:
|
||||
@rm -f $(BIN)
|
||||
|
||||
new:
|
||||
@if [ -z "$(filter-out $@,$(MAKECMDGOALS))" ]; then \
|
||||
echo "Usage: make new 2020D9"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@DAY_ARG=$$(echo $(filter-out $@,$(MAKECMDGOALS)) | awk '{print $$1}'); \
|
||||
YEAR=$$(echo $$DAY_ARG | sed 's/D.*//'); \
|
||||
DAY_NUM=$$(echo $$DAY_ARG | sed 's/.*D//'); \
|
||||
DAY_NAME=$$(case $$DAY_NUM in \
|
||||
1) echo "One" ;; \
|
||||
2) echo "Two" ;; \
|
||||
3) echo "Three" ;; \
|
||||
4) echo "Four" ;; \
|
||||
5) echo "Five" ;; \
|
||||
6) echo "Six" ;; \
|
||||
7) echo "Seven" ;; \
|
||||
8) echo "Eight" ;; \
|
||||
9) echo "Nine" ;; \
|
||||
10) echo "Ten" ;; \
|
||||
11) echo "Eleven" ;; \
|
||||
12) echo "Twelve" ;; \
|
||||
13) echo "Thirteen" ;; \
|
||||
14) echo "Fourteen" ;; \
|
||||
15) echo "Fifteen" ;; \
|
||||
16) echo "Sixteen" ;; \
|
||||
17) echo "Seventeen" ;; \
|
||||
18) echo "Eighteen" ;; \
|
||||
19) echo "Nineteen" ;; \
|
||||
20) echo "Twenty" ;; \
|
||||
21) echo "TwentyOne" ;; \
|
||||
22) echo "TwentyTwo" ;; \
|
||||
23) echo "TwentyThree" ;; \
|
||||
24) echo "TwentyFour" ;; \
|
||||
25) echo "TwentyFive" ;; \
|
||||
*) echo "Unknown" ;; \
|
||||
esac); \
|
||||
mkdir -p internal/$$YEAR/Day$$DAY_NAME; \
|
||||
mkdir -p internal/data/$$YEAR/Day$$DAY_NAME; \
|
||||
touch internal/$$YEAR/Day$$DAY_NAME/code.go; \
|
||||
touch internal/$$YEAR/Day$$DAY_NAME/code_test.go; \
|
||||
touch internal/data/$$YEAR/Day$$DAY_NAME/input.txt; \
|
||||
echo "Created files for $$DAY_ARG"
|
||||
|
||||
%:
|
||||
@:
|
||||
|
||||
Reference in New Issue
Block a user