days := 04 05 06 07

all: relock run
relock:
	nix flake update --recreate-lock-file
shell:
	nix -L develop
repl/%:
	nix -L develop -c sh -c 'cd $* && cabal repl exe:Day'
build: $(foreach day,$(days), build/Day$(day))
build/%:
	nix -L build .#$*
run: $(foreach day,$(days), run/Day$(day))
run/%:
	nix -L run --no-write-lock-file .#$*