SOURCE_DIR = $(PWD)
BUILD_DIR = ~/tmp/$(shell basename '$(SOURCE_DIR)')

all: format run

build: sync
	cd $(BUILD_DIR) && cargo build

doc: sync
	cd $(BUILD_DIR) && cargo doc --open

run: sync
	cd $(BUILD_DIR) && cargo run $(ARGS)

run_add: sync
	cd $(BUILD_DIR) && cargo run add

run_view: sync
	cd $(BUILD_DIR) && cargo run view

run_plan: sync
	cd $(BUILD_DIR) && cargo run plan --date 2022-15-22

run_behold: sync
	cd $(BUILD_DIR) && cargo run behold

test: sync
	cd $(BUILD_DIR) && cargo test -- --color always --nocapture

sync:
	mkdir -p $(BUILD_DIR)
	rsync -av '$(SOURCE_DIR)/' $(BUILD_DIR)/ --exclude .git --exclude target

fetch:
	rsync -av $(BUILD_DIR)/recipes ./
	rsync -av $(BUILD_DIR)/plans ./

format:
	rustfmt src/*

build_and_fetch_release: sync
	rm -rf ./target
	cd $(BUILD_DIR) && cargo build --release 
	rsync -av $(BUILD_DIR)/target ./

clean: 
	rm -rf $(BUILD_DIR)
	rm -rf ./target
