export METRIKA_SERVER=10.128.0.6
STOP_COMMAND='sudo systemctl stop data-insert.timer && sudo systemctl stop data-insert.service'
START_COMMAND='sudo cp -R /tmp/datagather/* /opt/datagather/ && sudo chown -R metrika:metrika /opt/datagather/ && sudo systemctl start data-insert.timer'


.PHONY: build
default: build

deploy: build copy

build-js:
	#go get github.com/tdewolff/minify/cmd/minify
	minify -o build/watch.min.js js/watch.js

update-external-data:
	cd metrika-processor && ./external-data-build.sh

test:
	cd metrika-processor && go test

build:
	rm build/*
	cd log-processor && env GOOS=linux GOARCH=amd64 go build -o ../build/log-processor
	cd metrika-processor && env GOOS=linux GOARCH=amd64 go build -o ../build/metrika-processor
	cp ../GeoLite2-City.mmdb build/
	cp clickhouse-server/script/* build/
	# cp bin/* build/

maxmind:
	wget -O ../maxmind.tar.gz "https://download.maxmind.com/app/geoip_download?edition_id=GeoIP2-City&suffix=tar.gz&license_key=B4JGXdsLU9xs"
	cd .. && tar xzf maxmind.tar.gz && \
		mv GeoIP2-City_*/GeoIP2-City.mmdb ./GeoLite2-City.mmdb && \
		rm -rf ./GeoIP2-City*

deploy-clickhouse-services:
	rsync -av ./clickhouse-server/systemd ${METRIKA_SERVER}:/tmp/
	ssh -t ${METRIKA_SERVER} "sudo cp /tmp/systemd/*  /etc/systemd/system/ && sudo systemctl daemon-reload"
	

deploy-clickhouse: build
	ssh -t ${METRIKA_SERVER} ${STOP_COMMAND}
	rsync -avz ./build/ ${METRIKA_SERVER}:/tmp/datagather/
	ssh -t ${METRIKA_SERVER} ${START_COMMAND}

 

gcp-copy:
	gsutil -m rm -rf gs://metrika-startup/*
	gsutil -m cp -r ./nginx-server gs://metrika-startup/
	gsutil -m cp -r ./clickhouse-server gs://metrika-startup/

	cd xsollauid && env GOOS=linux GOARCH=amd64 go build -o ../build/xsollauid
	gsutil cp  ./build/xsollauid gs://metrika-startup/nginx-server

gcp-copy-prod:
	gsutil -m rm -rf gs://metrika-startup-prod/*
	gsutil -m cp -r ./nginx-server gs://metrika-startup-prod/
	gsutil -m cp -r ./clickhouse-server gs://metrika-startup-prod/

	cd xsollauid && env GOOS=linux GOARCH=amd64 go build -o ../build/xsollauid
	gsutil cp  ./build/xsollauid gs://metrika-startup-prod/nginx-server


gcp-create-vm-template:
	gcloud compute instance-templates create datagather-$$(date +%Y%m%d-%H%M%S) \
		--no-boot-disk-auto-delete \
		--region=us-central1 --image-project=ubuntu-os-cloud --image-family=ubuntu-1604-lts \
		--machine-type=n1-highcpu-2 \
		--metadata startup-script-url=gs://metrika-startup-prod/nginx-server/startup/startup.sh,shutdown-script-url=gs://metrika-startup-prod/nginx-server/startup/shutdown.sh \
		--metadata-from-file ssh-keys=./nginx-server/metrika.id_rsa_pub \
		--scopes=https://www.googleapis.com/auth/devstorage.read_write,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/trace.append \
		--no-boot-disk-auto-delete



# gitlab deploy
#deploy_production:
#  stage: deploy_production
#  tags:
#    - puppet
#  script:
#    - go build
#    - echo "$SSH_PRIVATE_KEY" > /tmp/id_rsa.pub
#    - 'scp -i /tmp/id_rsa.pub ./{log-processor,GeoLite2-City.mmdb} metrika@$TARGET_SERVER:~/app/release_$(date +%Y-%m-%d_%H-%M-%S)'
#    - 'ssh -i /tmp/id_rsa.pub -t metrika@$TARGET_SERVER "ln -s ./app/$(ls -t | head -n1) ./app/current && ls -t ./app/ | sed \"1,5d\" | xargs rm -rf"'