#
# See the top level Makefile in https://github.com/docker/docker for usage.
#
FROM debian:jessie
MAINTAINER Sven Dowideit <SvenDowideit@docker.com> (@SvenDowideit)

RUN apt-get update \
	&& apt-get install -y \
		gettext \
		git \
		libssl-dev \
		make \
		python-dev \
		python-pip \
		python-setuptools \
		vim-tiny

RUN pip install mkdocs

# add MarkdownTools to get transclusion
# (future development)
#RUN easy_install -U setuptools
#RUN pip install MarkdownTools2

# this version works, the current versions fail in different ways
RUN pip install awscli==1.4.4 pyopenssl==0.12

# get my sitemap.xml branch of mkdocs and use that for now
# commit hash of the newest commit of SvenDowideit/mkdocs on
# docker-markdown-merge branch, it is used to break docker cache
# see: https://github.com/SvenDowideit/mkdocs/tree/docker-markdown-merge
RUN git clone -b docker-markdown-merge https://github.com/SvenDowideit/mkdocs \
	&& cd mkdocs/ \
	&& git checkout ad32549c452963b8854951d6783f4736c0f7c5d5 \
	&& ./setup.py install

COPY . /docs
COPY MAINTAINERS /docs/sources/humans.txt
WORKDIR /docs

RUN VERSION=$(cat VERSION) \
	&& MAJOR_MINOR="${VERSION%.*}" \
	&& for i in $(seq $MAJOR_MINOR -0.1 1.0); do \
		echo "<li><a class='version' href='/v$i'>Version v$i</a></li>"; \
	done > sources/versions.html_fragment \
	&& GIT_BRANCH=$(cat GIT_BRANCH) \
	&& GITCOMMIT=$(cat GITCOMMIT) \
	&& AWS_S3_BUCKET=$(cat AWS_S3_BUCKET) \
	&& BUILD_DATE=$(date) \
	&& sed -i "s/\$VERSION/$VERSION/g" theme/mkdocs/base.html \
	&& sed -i "s/\$MAJOR_MINOR/v$MAJOR_MINOR/g" theme/mkdocs/base.html \
	&& sed -i "s/\$GITCOMMIT/$GITCOMMIT/g" theme/mkdocs/base.html \
	&& sed -i "s/\$GIT_BRANCH/$GIT_BRANCH/g" theme/mkdocs/base.html \
	&& sed -i "s/\$BUILD_DATE/$BUILD_DATE/g" theme/mkdocs/base.html \
	&& sed -i "s/\$AWS_S3_BUCKET/$AWS_S3_BUCKET/g" theme/mkdocs/base.html

EXPOSE 8000

RUN cd sources && rgrep --files-with-matches '{{ include ".*" }}' | xargs sed -i~ 's/{{ include "\(.*\)" }}/cat include\/\1/ge'

CMD ["mkdocs", "serve"]

# Initial Dockerfile driven documenation aggregation
# Sven plans to move each Dockerfile into the respective repository

# Docker Swarm
ADD https://raw.githubusercontent.com/docker/swarm/master/logo.png /docs/sources/swarm/logo.png
ADD https://raw.githubusercontent.com/docker/swarm/master/README.md /docs/sources/swarm/README.md
ADD https://raw.githubusercontent.com/docker/swarm/master/discovery/README.md /docs/sources/swarm/discovery.md
ADD https://raw.githubusercontent.com/docker/swarm/master/api/README.md /docs/sources/swarm/API.md
ADD https://raw.githubusercontent.com/docker/swarm/master/scheduler/filter/README.md /docs/sources/swarm/filters.md

# Docker Machine
ADD https://raw.githubusercontent.com/docker/machine/master/docs/dockermachine.md /docs/sources/machine/userguide.md

# Docker Compose
ADD https://raw.githubusercontent.com/docker/fig/master/docs/index.md /docs/sources/compose/userguide.md
ADD https://raw.githubusercontent.com/docker/fig/master/docs/install.md /docs/sources/compose/install.md
ADD https://raw.githubusercontent.com/docker/fig/master/docs/cli.md /docs/sources/compose/cli.md
ADD https://raw.githubusercontent.com/docker/fig/master/docs/yml.md /docs/sources/compose/yml.md

# add the project docs from the `mkdocs-<project>.yml` files
RUN cd /docs && ./build.sh

# remove `^---*` lines from md's
RUN cd /docs/sources && find . -name "*.md" | xargs sed -i~ -n '/^---*/!p'
