.PHONY: clean clean_pytest format lint test unit_lint_job deploy_job env run_everything

clean:
	rm -rf \
	output/ \
	project/project \
	project/target \
	scala.iml \
	target \
	abacus/output \
	abacus/target \
	CalculateTotals/output \
	CalculateTotals/target \
	ExampleJob/output \
	ExampleJob/target \
	MatchContracts/output \
	MatchContracts/target \
	MatchContractTerms/output \
	MatchMechanicals/output \
	MatchMechanicals/target \
	MatchContractTerms/target \
	Mechanicals/output \
	Mechanicals/target \
	PreProcess/output \
	PreProcess/target \
	spark-warehouse

clean_pytest:
	rm -rf env .pytest_cache batch_id.txt
	find . | grep -E '__pycache__|\.pyc|\.pyo$\' | xargs rm -rf

format:
	sbt scalafmt

lint:
	sbt scalastyle

test: clean
	chmod +x ./bin/test.sh
	./bin/test.sh

unit_lint_job: test

deploy_job: clean
	chmod +x ./bin/deploy.sh
	./bin/deploy.sh

# accounting run test scripts
env:
	python3.8 -m venv env
	env/bin/python -m pip install --upgrade pip
	env/bin/python -m pip install setuptools wheel
	env/bin/python -m pip install -r requirements.txt

run_everything: clean_pytest env
	env/bin/python -m integration_tests.executor 'delete_result_files_from_s3'
	env/bin/python -m integration_tests.executor 'post_livy_jobs' 'Mechanicals_2.11.12-0.1.0.jar' 'com.theorchard.mechanicals.ProcessMechanicalDeductions' 's3://qa-abacus-compute-test/data-092922/release-rates/, s3://qa-abacus-compute-test/data-092922/track-rates/, s3://qa-abacus-compute-test/acc_run_testing_results/mechanicals/, s3://qa-abacus-compute-test/data-092922/eligible-sales/results/'
	env/bin/python -m integration_tests.executor 'post_livy_jobs' 'MatchContracts_2.11.12-0.1.0.jar' 'com.theorchard.matching.MatchContracts' 's3://qa-abacus-compute-test/data-092922/contract-parquet/, s3://qa-abacus-compute-test/acc_run_testing_results/match_contracts/, s3://qa-abacus-compute-test/data-092922/eligible-sales/results/'
	env/bin/python -m integration_tests.executor 'post_livy_jobs' 'MatchContractTerms_2.11.12-0.1.0.jar' 'com.theorchard.terms.MatchContractTerms' 's3://qa-abacus-compute-test/acc_run_testing_results/match_contracts/, s3://qa-abacus-compute-test/data-092922/contract-parquet/, s3://qa-abacus-compute-test/acc_run_testing_results/matchcontractterms/'
	env/bin/python -m integration_tests.executor 'post_livy_jobs' 'MatchMechanicals_2.11.12-0.1.0.jar' 'com.theorchard.match_mechanicals.MatchMechanicals' 's3://qa-abacus-compute-test/acc_run_testing_results/match_contracts/, s3://qa-abacus-compute-test/data-092922/mechanical-contracts.tsv, s3://qa-abacus-compute-test/acc_run_testing_results/mechanicals/, s3://qa-abacus-compute-test/acc_run_testing_results/match_mechanicals/'
	env/bin/python -m integration_tests.executor 'post_livy_jobs' 'CalculateTotals_2.11.12-0.1.0.jar' 'com.theorchard.totals.CalculateTotals' 's3://qa-abacus-compute-test/acc_run_testing_results/matchcontractterms/, s3://qa-abacus-compute-test/acc_run_testing_results/match_mechanicals/, s3://qa-abacus-compute-test/data-092922/exchange-rates/, s3://qa-abacus-compute-test/acc_run_testing_results/calculate_totals/'
	env/bin/python -m pytest integration_tests/test_files/validate_results.py
