DESTDIR=/srv/www/yavscpre
PRODDESTDIR=/srv/www/yavsc
ASPNET_ENV=Development

git_status := $(shell git status -s --porcelain |wc -l)

status:
ifeq ($(git_status),0)
		@echo Nothing to be done.
else
		@git status
endif

default: pushInPre

watch:
	@ASPNET_ENV=$(ASPNET_ENV) dnx-watch web --configuration=Debug

run:
	@ASPNET_ENV=$(ASPNET_ENV) dnx web --configuration=Debug

clean:
	@rm -rf bin/Release
	@rm -rf bin/output

bin/Release:
	@dnu build --configuration=Release

bin/output: bin/Release
	@dnu publish

bin/output/wwwroot/version: bin/output
	@git log -1 --pretty=format:%h > bin/output/wwwroot/version

pushInPre: bin/output/wwwroot/version
	ssh root@localhost systemctl stop kestrel-pre
	ssh root@localhost rm -rf $(DESTDIR)/approot
	(cd bin/output && rsync -ravu ./ root@localhost:$(DESTDIR) >/dev/null)
	ssh root@localhost sync
	ssh root@localhost systemctl start kestrel-pre

pushInProd: bin/output/wwwroot/version
ifeq ($(git_status),0)
	ssh root@localhost systemctl stop kestrel
	ssh root@localhost rm -rf $(PRODDESTDIR)/approot
	(cd bin/output && rsync -ravu ./ root@localhost:$(PRODDESTDIR) >/dev/null)
	ssh root@localhost sync
	ssh root@localhost systemctl start kestrel
else
	@echo Err! Refus de pousser en production: des changements doivent être validés auprès du contrôle de versions.
	git status
endif
