3 # "git-doc" is a clone of the git.git repository and has the master
4 # branch checked out. We update the working tree and prepare
5 # preformatted documentation pages, and install them in doc-htmlpages
6 # and doc-manapges subdirectories. When they are updated, they are
7 # pushed back into their own repositories next to the git.git
12 MASTERREPO
=/srv
/project
/git
/git.git
/
14 MANREPO
=/srv
/project
/git
/git-manpages.git
/
15 HTMLREPO
=/srv
/project
/git
/git-htmldocs.git
/
18 TARGETVAR
=$
(echo "$1"REPO |
tr 'a-z' 'A-Z') &&
19 eval "echo \$$TARGETVAR"
22 DOCREPO
=$
(pwd) ;# "git-doc"
25 ID
=$
(cd "$MASTERREPO" && git rev-parse
--verify refs
/heads
/master
) ||
exit $?
28 trap 'rm -f "$tmp".*' 0
31 git pull
--ff-only "$MASTERREPO" master
&&
32 git fetch
--tags "$MASTERREPO"
35 test $
(git rev-parse
--verify refs
/heads
/master
) = "$ID" &&
36 NID
=$
(git describe
--abbrev=4 "$ID") &&
37 test -n "$NID" ||
exit $?
41 # Set up subrepositories
44 test -d doc-
${type}pages
&& continue
46 git init doc-
${type}pages
&&
47 cd doc-
${type}pages ||
exit
48 TARGETREPO
=$
(target_repo
$type) &&
49 git pull
"$TARGETREPO" master
51 rm -fr doc-
$type-inst &&
52 mkdir
-p doc-
$type-inst &&
54 cd doc-
${type}pages
&& git archive HEAD
57 cd doc-
$type-inst && tar xf
-
62 ASCIIDOC_NO_ROFF=YesPlease
64 MAN_BASE_URL="http://www.kernel.org/pub/software/scm/git/docs/"
73 rm -fr doc-html-inst doc-man-inst
&&
74 mkdir doc-html-inst doc-man-inst ||
exit
82 -C Documentation
-j 2 $dd \
83 WEBDOC_DEST
="$DOCREPO/doc-html-inst" install-webdoc ||
exit
86 -C Documentation
-j 2 $dd \
87 man1
="$DOCREPO/doc-man-inst/man1" \
88 man5
="$DOCREPO/doc-man-inst/man5" \
89 man7
="$DOCREPO/doc-man-inst/man7" \
90 man1dir
="$DOCREPO/doc-man-inst/man1" \
91 man5dir
="$DOCREPO/doc-man-inst/man5" \
92 man7dir
="$DOCREPO/doc-man-inst/man7" install ||
exit
96 find doc-
$type-inst -type f |
99 it
=$
(expr "$path" : doc-
$type-inst/'\(.*\)') ||
continue
100 t
="doc-${type}pages/$it"
101 test -f "$t" && diff -q "$path" "$t" && continue
102 mkdir
-p "$(dirname "$t")" &&
103 echo ": $t" && rm -f "$t" && ln "$path" "$t" ||
exit
104 ( cd doc-
${type}pages
&& git add
"$it" )
107 find doc-
$type-inst -type f |
108 sed -e 's|^doc-'$type'-inst/||' |
sort >"$tmp.1" &&
109 (cd doc-
${type}pages
&& git ls-files |
sort) >"$tmp.2" &&
110 comm -13 "$tmp.1" "$tmp.2" |
111 ( cd doc-
${type}pages
&& xargs rm -f -- ) ||
exit
120 ln -sf git.html index.html
128 if git commit
-a -m "Autogenerated $TYPE for $NID"
130 TARGETREPO
=$
(target_repo
$type) &&
131 git push
"$TARGETREPO" master
:master
133 echo "* No changes in $type docs"