include Makefile.sphinx

IMAGE=fpm-sphinx
WORKDIR=./.work
GITROOT=$(shell git rev-parse --show-toplevel)
GITREMOTE=$(shell git remote -v | awk '/(push)/ {print $$2}')

GENERATED_FILES=cli-reference.rst changelog_links.rst

$(WORKDIR):
	mkdir $(WORKDIR)

# A task to generate reST syntax for issue links mentioned in CHANGELOG.rst
changelog_links.rst: ../CHANGELOG.rst Makefile
	grep -Eo '#[0-9]+' $< \
		| tr -d '#' \
		| awk '{printf ".. _#%s: https://github.com/jordansissel/fpm/issues/%s\n", $$1, $$1 }' \
		| sort -u > $@

# CLI reference is generated based on the the command line flags
cli-reference.rst: generate-cli-reference.rb Makefile
cli-reference.rst: ../lib/fpm/package/*.rb ../lib/fpm/package.rb
	ruby generate-cli-reference.rb > $@

package-type-cli: 
	$(MAKE) $(addprefix packages/cli/,$(addsuffix .rst,$(notdir $(basename $(wildcard ../lib/fpm/package/*.rb)))))

packages/cli:
	mkdir $@

packages/cli/%.rst: ../lib/fpm/package/%.rb packages/cli
	ruby generate-cli-reference.rb $* > $@


.PHONY: docker-prep
docker-prep: Dockerfile
	@docker images fpm-sphinx | grep -q '^fpm-sphinx ' \
	|| docker build -t $(IMAGE) .

.PHONY: build
build: $(GENERATED_FILES) | docker-prep
	docker run -it -v $$PWD/../:/project:z $(IMAGE) sh -xc 'make -C /project/docs html && chown -R 1000:1000 /project/docs'


.PHONY: build
view: $(GENERATED_FILES) | docker-prep
	docker run -p 127.0.0.1:8000:8000 -it -v $$PWD/../:/project:z $(IMAGE) sh -xc 'make -C /project/docs livehtml'