OLD | NEW |
(Empty) | |
| 1 #!/bin/bash -e |
| 2 shopt -s nullglob |
| 3 |
| 4 cd $(dirname "$0") |
| 5 |
| 6 # Script which takes all the asciidoc git-*.txt files in this directory, renders |
| 7 # them to html + manpage format using git 1.9's doc toolchain, then puts |
| 8 # them in depot_tools to be committed. |
| 9 |
| 10 ensure_in_path() { |
| 11 local CMD=$1 |
| 12 local PTH=$(which "$CMD") |
| 13 if [[ ! $PTH ]] |
| 14 then |
| 15 echo Must have "$CMD" on your PATH! |
| 16 exit 1 |
| 17 else |
| 18 echo Using \'$PTH\' for ${CMD}. |
| 19 fi |
| 20 } |
| 21 |
| 22 ensure_in_path xmlto |
| 23 ensure_in_path asciidoc |
| 24 |
| 25 DFLT_CATALOG_PATH="/usr/local/etc/xml/catalog" |
| 26 if [[ ! $XML_CATALOG_FILES && -f "$DFLT_CATALOG_PATH" ]] |
| 27 then |
| 28 # Default if you install doctools with homebrew on mac |
| 29 export XML_CATALOG_FILES="$DFLT_CATALOG_PATH" |
| 30 echo Using \'$DFLT_CATALOG_PATH\' for \$XML_CATALOG_FILES. |
| 31 fi |
| 32 |
| 33 # We pull git to get its documentation toolchain |
| 34 BRANCH=v1.9.0 |
| 35 GITHASH=5f95c9f850b19b368c43ae399cc831b17a26a5ac |
| 36 if [[ ! -d git || $(git -C git rev-parse HEAD) != $GITHASH ]] |
| 37 then |
| 38 echo Cloning git |
| 39 rm -rf git |
| 40 git clone --single-branch --branch $BRANCH --depth 1 \ |
| 41 https://kernel.googlesource.com/pub/scm/git/git.git 2> /dev/null |
| 42 |
| 43 # Replace the 'source' and 'package' strings. |
| 44 ed git/Documentation/asciidoc.conf <<EOF |
| 45 H |
| 46 81 |
| 47 s/Git/depot_tools |
| 48 +2 |
| 49 s/Git Manual/Chromium depot_tools Manual |
| 50 wq |
| 51 EOF |
| 52 fi |
| 53 echo Git up to date at $GITHASH \($BRANCH\) |
| 54 |
| 55 HTML_TARGETS=() |
| 56 MAN_TARGETS=() |
| 57 for x in *.txt |
| 58 do |
| 59 TO="git/Documentation/$x" |
| 60 if [[ ! -f "$TO" ]] || ! cmp --silent "$x" "$TO" |
| 61 then |
| 62 echo \'$x\' differs |
| 63 cp $x "$TO" |
| 64 fi |
| 65 # Exclude files beginning with _ from the target list. This is useful to have |
| 66 # includable snippet files. |
| 67 if [[ ${x:0:1} != _ ]] |
| 68 then |
| 69 HTML_TARGETS+=("${x%%.txt}.html") |
| 70 MAN_TARGETS+=("${x%%.txt}.1") |
| 71 fi |
| 72 done |
| 73 |
| 74 VER="v$(git rev-parse --short HEAD)" |
| 75 if [[ ! -f git/version ]] || ! cmp --silent git/version <(echo "$VER") |
| 76 then |
| 77 echo Version changed, cleaning. |
| 78 echo "$VER" > git/version |
| 79 (cd git/Documentation && make clean) |
| 80 fi |
| 81 |
| 82 # This export is so that asciidoc sys snippets which invoke git run relative to |
| 83 # depot_tools instead of the git clone. |
| 84 ( |
| 85 export GIT_DIR="$(git rev-parse --git-dir)" && |
| 86 cd git/Documentation && |
| 87 make -j"$[${#MAN_TARGETS} + ${#HTML_TARGETS}]" "${MAN_TARGETS[@]}" "${HTML_TAR
GETS[@]}" |
| 88 ) |
| 89 |
| 90 mkdir htmlout 2> /dev/null || true |
| 91 for x in "${HTML_TARGETS[@]}" |
| 92 do |
| 93 echo Copying htmlout/$x |
| 94 cp "git/Documentation/$x" htmlout |
| 95 done |
| 96 |
| 97 for x in "${MAN_TARGETS[@]}" |
| 98 do |
| 99 echo Copying ../man1/$x |
| 100 cp "git/Documentation/$x" ../man1 |
| 101 done |
OLD | NEW |