include ../make/bazel.mk

# First create a list of all the modules that ./go/ts depends upon.
tsDependentModules := $(shell go list -f '{{ join .Imports "\n" }}' go.skia.org/infra/fiddlek/go/ts/  )

# Then use that list to find all the Go files that make up those dependent modules.
tsDependentFiles := $(shell echo $(tsDependentModules) | xargs -L 1 go list -f '{{ $$dir := .Dir }}{{ range  .GoFiles }}{{ $$dir }}/{{ . }}{{ "\n" }}{{ end }}' )

./modules/json/index.ts: $(tsDependentFiles)
	go generate ./go/...

fiddle_secwrap:
	$(BAZEL) build //fiddlek/cpp:fiddle_secwrap

build: ./modules/json/index.ts fiddle_secwrap
	$(BAZEL) build go/... modules/... pages/...

serve:
	@echo "Bazel doesn't have a serve-all option."
	@echo "For the module under development, try running something like:"
	@echo "bazel run modules/fiddle-embed-sk:demo_page_server"

release-fiddle: build
	$(BAZEL) run //fiddlek:push_fiddle_container

build-fiddler:
	docker pull gcr.io/skia-public/skia-release:prod
	# Extract skia checkout from the most recently built docker container.
	# This is built with @skia//docker/skia-wasm-release/Dockerfile
	docker run --rm -u $$(id -u ${USER}):$$(id -g ${USER}) \
	    --volume `pwd`/build:/OUT gcr.io/skia-public/skia-release:prod \
	   sh -c "cd /tmp; tar cvzf skia.tar.gz --directory=/tmp/skia skia; cp /tmp/skia.tar.gz /OUT/"

release-fiddler: build build-fiddler
	$(BAZEL) run //fiddlek:push_fiddler_container
	# Cleanup the build directory.
	git checkout build/*

release: release-fiddle release-fiddler

# Used by the autodeployment framework:
# https://skia.googlesource.com/buildbot/+doc/main/docker_pushes_watcher/README.md
release-fiddler-ci: build
	# COPY_FROM_DIR and STABLE_DOCKER_TAG env variables are expected to be
	# set by the auto deploy mechanism,
	cp $(COPY_FROM_DIR)/skia.tar.gz build/skia.tar.gz
	${BAZEL} run //fiddlek:push_fiddler_container --workspace_status_command=bazel/override_container_label.sh
	# Cleanup the build directory.
	git checkout build/*

push: release
	$(BAZEL) run //kube/go/pushk -- --use-temp-checkout fiddle fiddler

push_fiddle: release-fiddle
	$(BAZEL) run //kube/go/pushk -- --use-temp-checkout fiddle

push_fiddler: release-fiddler
	$(BAZEL) run //kube/go/pushk -- --use-temp-checkout fiddler

cli:
	go install -v ./go/fiddlecli

test: testgo testcpp testjs

testjs:
	$(BAZEL) test modules/...

testgo:
	go test -v ./...

testcpp: build
	mkdir -p bin
	clang ./cpp/fail_socket.cpp -o ./bin/fail_socket
	clang ./cpp/fail_execve.cpp -o ./bin/fail_execve
	clang ./cpp/fail_link.cpp -o ./bin/fail_link
	clang ./cpp/fail_rename.cpp -o ./bin/fail_rename
	clang ./cpp/fail_mknod.cpp -o ./bin/fail_mknod
	../_bazel_bin/fiddlek/cpp/fiddle_secwrap ./bin/fail_socket; test $$? -eq 1
	../_bazel_bin/fiddlek/cpp/fiddle_secwrap ./bin/fail_execve; test $$? -eq 255
	../_bazel_bin/fiddlek/cpp/fiddle_secwrap ./bin/fail_link; test $$? -eq 255
	../_bazel_bin/fiddlek/cpp/fiddle_secwrap ./bin/fail_rename; test $$? -eq 255
	../_bazel_bin/fiddlek/cpp/fiddle_secwrap ./bin/fail_mknod; test $$? -eq 255
	echo "SUCCESS"

# This presumes a fiddler is available at port :8000 and scrapexchange is available at port :9000.
# You can either run a local copy of scrapexchange, or port-forward the production instance:
#   kubectl port-forward service/scrapexchange 9000
.PHONY: run_local_fiddle
run_local_fiddle: build
	../_bazel_bin/fiddlek/go/fiddle/fiddle_/fiddle --local --port=:8080 --source_image_dir=/etc/fiddle/source --scrapexchange=localhost:9000 --dist_dir=../_bazel_bin/fiddlek/pages/development

# Runs a local fiddler.
.PHONY: run_local_fiddler
run_local_fiddler:
	docker run -ti -p8000:8000 --cap-add=SYS_PTRACE gcr.io/skia-public/fiddler:prod --fiddle_root=/tmp --checkout=/tmp/skia/skia/ --local
