documentation: Use a per-version directory
This way older versions of the documentation are properly archived in SVN as their own subdirectories, making it easier to examine any prior build's documentation when necessary. Change-Id: I15afe13adbe185c8b6ba6fb2002dd67ff04d44e1 Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
parent
7401cb068c
commit
edd8ed3e14
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
|
||||
V=$(git describe HEAD)
|
||||
|
||||
case "$V" in
|
||||
'')
|
||||
echo >&2 "fatal: no annotated tags, cannot determine version"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*-g*)
|
||||
echo >&2 "fatal: snapshot $V, cannot determine version"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
v*)
|
||||
echo ${V#v}
|
||||
;;
|
||||
esac
|
|
@ -11,29 +11,55 @@
|
|||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
DOC_HTML = $(patsubst %.txt,%.html,$(wildcard *.txt))
|
||||
ASCIIDOC = asciidoc
|
||||
ASCIIDOC_EXTRA =
|
||||
SVN = svn
|
||||
PUB_ROOT = https://gerrit.googlecode.com/svn/documentation
|
||||
LOCAL_ROOT = .published
|
||||
|
||||
SCRIPTSDIR := $(shell pwd)/javascript
|
||||
DOC_VERS := $(shell git describe HEAD)
|
||||
DOC_VMM := $(shell sh -c "echo $(DOC_VERS) | perl -pe 's,^v(\d+\.\d+)[\.-].*\$$,\$$1,'")
|
||||
PUB_DIR = $(PUB_ROOT)/$(DOC_VMM)
|
||||
ASCIIDOC ?= asciidoc
|
||||
ASCIIDOC_EXTRA ?=
|
||||
SVN ?= svn
|
||||
PUB_ROOT ?= https://gerrit.googlecode.com/svn/documentation
|
||||
|
||||
all: html
|
||||
|
||||
clean:
|
||||
rm -f *.html
|
||||
rm -rf $(LOCAL_ROOT)
|
||||
|
||||
ifeq ($(origin VERSION), undefined)
|
||||
VERSION := $(shell ./GEN-DOC-VERSION 2>/dev/null)
|
||||
endif
|
||||
|
||||
DOC_HTML := $(patsubst %.txt,%.html,$(wildcard *.txt))
|
||||
LOCAL_ROOT := .published
|
||||
SCRIPTSDIR := $(shell pwd)/javascript
|
||||
COMMIT := $(shell git describe HEAD | sed s/^v//)
|
||||
PUB_DIR := $(PUB_ROOT)/$(VERSION)
|
||||
|
||||
ifeq ($(VERSION),)
|
||||
REVISION = $(COMMIT)
|
||||
else
|
||||
ifeq ($(VERSION),$(COMMIT))
|
||||
REVISION := $(VERSION)
|
||||
else
|
||||
REVISION := $(VERSION) (from v$(COMMIT))
|
||||
endif
|
||||
endif
|
||||
|
||||
html: $(DOC_HTML)
|
||||
|
||||
update: html
|
||||
-rm -rf $(LOCAL_ROOT)
|
||||
$(SVN) checkout $(PUB_DIR) $(LOCAL_ROOT)
|
||||
rm -f $(LOCAL_ROOT)/*.html
|
||||
cp *.html $(LOCAL_ROOT)
|
||||
cd $(LOCAL_ROOT) && \
|
||||
ifeq ($(VERSION),)
|
||||
./GEN-DOC-VERSION
|
||||
endif
|
||||
@-rm -rf $(LOCAL_ROOT)
|
||||
@echo "Checking out current $(VERSION)"
|
||||
@if ! $(SVN) checkout $(PUB_DIR) $(LOCAL_ROOT) 2>/dev/null ; then \
|
||||
p=$$(git describe HEAD^ | perl -lne 'print $$1 if /^v(\d+\.\d+\.\d+)/') && \
|
||||
echo "Copying $$p to $(VERSION) ..." && \
|
||||
$(SVN) cp -m "Create $(VERSION) documentation" $(PUB_ROOT)/$$p $(PUB_DIR) && \
|
||||
$(SVN) checkout $(PUB_DIR) $(LOCAL_ROOT) ; \
|
||||
fi
|
||||
@rm -f $(LOCAL_ROOT)/*.html
|
||||
@cp *.html $(LOCAL_ROOT)
|
||||
@cd $(LOCAL_ROOT) && \
|
||||
r=`$(SVN) status | perl -ne 'print if s/^! *//' ` && \
|
||||
if [ -n "$$r" ]; then $(SVN) rm $$r; fi && \
|
||||
a=`$(SVN) status | perl -ne 'print if s/^\? *//' ` && \
|
||||
|
@ -41,21 +67,17 @@ update: html
|
|||
$(SVN) add $$a && \
|
||||
$(SVN) propset svn:mime-type text/html $$a ; \
|
||||
fi && \
|
||||
$(SVN) commit -m "Updated documentation $(DOC_VMM) to $(DOC_VERS)"
|
||||
-rm -rf $(LOCAL_ROOT)
|
||||
|
||||
new-docs:
|
||||
$(SVN) mkdir -m "Create documentation $(DOC_VMM)" $(PUB_DIR)
|
||||
|
||||
clean:
|
||||
rm -f *.html
|
||||
rm -rf $(LOCAL_ROOT)
|
||||
echo "Committing $(VERSION) at v$(COMMIT)" && \
|
||||
$(SVN) commit -m "Updated $(VERSION) documentation to v$(COMMIT)"
|
||||
@-rm -rf $(LOCAL_ROOT)
|
||||
|
||||
$(DOC_HTML): %.html : %.txt $(SCRIPTSDIR)/toc.js
|
||||
rm -f $@+ $@
|
||||
$(ASCIIDOC) --unsafe \
|
||||
-a toc -a 'revision=$(DOC_VERS)' \
|
||||
@echo "FORMAT $@"
|
||||
@rm -f $@+ $@
|
||||
@$(ASCIIDOC) --unsafe \
|
||||
-a toc \
|
||||
-a 'revision=$(REVISION)' \
|
||||
-a 'scriptsdir=$(SCRIPTSDIR)' \
|
||||
-b xhtml11 -f asciidoc.conf \
|
||||
$(ASCIIDOC_EXTRA) -o $@+ $<
|
||||
mv $@+ $@
|
||||
@mv $@+ $@
|
||||
|
|
|
@ -11,27 +11,29 @@
|
|||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
DOC_HTML = $(patsubst %.txt,%.html,$(wildcard ReleaseNotes*.txt))
|
||||
ASCIIDOC = asciidoc
|
||||
ASCIIDOC_EXTRA =
|
||||
SVN = svn
|
||||
PUB_ROOT = https://gerrit.googlecode.com/svn/ReleaseNotes
|
||||
LOCAL_ROOT = .published
|
||||
|
||||
ASCIIDOC ?= asciidoc
|
||||
ASCIIDOC_EXTRA ?=
|
||||
SVN ?= svn
|
||||
PUB_ROOT ?= https://gerrit.googlecode.com/svn/ReleaseNotes
|
||||
|
||||
DOC_HTML := $(patsubst %.txt,%.html,$(wildcard ReleaseNotes*.txt))
|
||||
COMMIT := $(shell git describe HEAD | sed s/^v//)
|
||||
SCRIPTSDIR := $(shell pwd)/../Documentation/javascript
|
||||
PUB_DIR = $(PUB_ROOT)
|
||||
LOCAL_ROOT := .published
|
||||
PUB_DIR := $(PUB_ROOT)
|
||||
|
||||
all: html
|
||||
|
||||
html: index.html $(DOC_HTML)
|
||||
|
||||
update: html
|
||||
-rm -rf $(LOCAL_ROOT)
|
||||
$(SVN) checkout $(PUB_DIR) $(LOCAL_ROOT)
|
||||
rm -f $(LOCAL_ROOT)/*.html
|
||||
cp *.html $(LOCAL_ROOT)
|
||||
cd $(LOCAL_ROOT) && \
|
||||
@-rm -rf $(LOCAL_ROOT)
|
||||
@echo "Checking out current release notes"
|
||||
@$(SVN) checkout $(PUB_DIR) $(LOCAL_ROOT)
|
||||
@rm -f $(LOCAL_ROOT)/*.html
|
||||
@cp *.html $(LOCAL_ROOT)
|
||||
@cd $(LOCAL_ROOT) && \
|
||||
r=`$(SVN) status | perl -ne 'print if s/^! *//' ` && \
|
||||
if [ -n "$$r" ]; then $(SVN) rm $$r; fi && \
|
||||
a=`$(SVN) status | perl -ne 'print if s/^\? *//' ` && \
|
||||
|
@ -39,32 +41,35 @@ update: html
|
|||
$(SVN) add $$a && \
|
||||
$(SVN) propset svn:mime-type text/html $$a ; \
|
||||
fi && \
|
||||
$(SVN) commit -m "Updated release notes"
|
||||
-rm -rf $(LOCAL_ROOT)
|
||||
echo "Committing release notes at v$(COMMIT)" && \
|
||||
$(SVN) commit -m "Updated release notes to v$(COMMIT)"
|
||||
@-rm -rf $(LOCAL_ROOT)
|
||||
|
||||
clean:
|
||||
rm -f *.html
|
||||
rm -rf $(LOCAL_ROOT)
|
||||
|
||||
index.html: index.txt $(SCRIPTSDIR)/toc.js
|
||||
rm -f $@+ $@
|
||||
$(ASCIIDOC) --unsafe \
|
||||
@echo FORMAT $@
|
||||
@rm -f $@+ $@
|
||||
@$(ASCIIDOC) --unsafe \
|
||||
-a toc \
|
||||
-a 'scriptsdir=$(SCRIPTSDIR)' \
|
||||
-b xhtml11 -f asciidoc.conf \
|
||||
$(ASCIIDOC_EXTRA) -o $@+ $<
|
||||
mv $@+ $@
|
||||
@mv $@+ $@
|
||||
|
||||
$(DOC_HTML): %.html : %.txt $(SCRIPTSDIR)/toc.js
|
||||
rm -f $@+ $@
|
||||
v=$$(echo $< | sed 's/^ReleaseNotes-//;s/.txt$$//;') && \
|
||||
c=$$(git rev-list -1 HEAD -- $<) && \
|
||||
n=$$(git describe $$c) && \
|
||||
if [ "X$$n" != "Xv$$v" ]; then v="$$v (from $$n)"; fi && \
|
||||
$(ASCIIDOC) --unsafe \
|
||||
@echo FORMAT $@
|
||||
@rm -f $@+ $@
|
||||
@v=$$(echo $< | sed 's/^ReleaseNotes-//;s/.txt$$//;') && \
|
||||
c=$$(git rev-list -1 HEAD -- $<) && \
|
||||
n=$$(git describe $$c) && \
|
||||
if [ "X$$n" != "Xv$$v" ]; then v="$$v (from $$n)"; fi && \
|
||||
$(ASCIIDOC) --unsafe \
|
||||
-a toc \
|
||||
-a "revision=$$v" \
|
||||
-a 'scriptsdir=$(SCRIPTSDIR)' \
|
||||
-b xhtml11 -f asciidoc.conf \
|
||||
$(ASCIIDOC_EXTRA) -o $@+ $<
|
||||
mv $@+ $@
|
||||
@mv $@+ $@
|
||||
|
|
Loading…
Reference in New Issue