From aec5430457819ee538f22577852c3cf93288b1a3 Mon Sep 17 00:00:00 2001 From: Nicolas Sebrecht Date: Wed, 25 Mar 2015 20:09:59 +0100 Subject: [PATCH] website-doc.sh: include user contributions Signed-off-by: Nicolas Sebrecht --- contrib/release.sh | 8 ++----- contrib/systemd/README.md | 27 ++++++++++++----------- docs/Makefile | 1 + docs/website-doc.sh | 46 ++++++++++++++++++++++++++++++--------- 4 files changed, 53 insertions(+), 29 deletions(-) diff --git a/contrib/release.sh b/contrib/release.sh index e2e482b..e740cdc 100755 --- a/contrib/release.sh +++ b/contrib/release.sh @@ -93,12 +93,8 @@ function edit_file () { function fix_pwd () { debug 'in fix_pwd' - if test ! -d .git -a ! -f offlineimap.py - then - test "$PWD" = '/' && die 2 "You're not in the offlineimap repository..." - cd .. - fix_pwd - fi + cd "$(git rev-parse --show-toplevel)" || \ + die 2 "cannot determine the root of the repository" } diff --git a/contrib/systemd/README.md b/contrib/systemd/README.md index 5ae31e4..04f39f6 100644 --- a/contrib/systemd/README.md +++ b/contrib/systemd/README.md @@ -1,16 +1,17 @@ -Systemd units -============= +--- +layout: page +title: Integrating OfflineIMAP into systemd +author: Ben Boeckel +date: 2015-03-22 +--- -These unit files are meant to be used in the user session. You may drop them -into `${XDG_DATA_HOME}/systemd/user` followed by `systemctl --user -daemon-reload` to have systemd aware of the unit files. + -These files are meant to be triggered either manually using `systemctl --user -start offlineimap.service` or by enabling the timer unit using `systemctl ---user enable offlineimap.timer`. Additionally, specific accounts may be -triggered by using `offlineimap@myaccount.timer` or -`offlineimap@myaccount.service`. -These unit files are installed as being enabled via a `mail.target` unit which -is intended to be a catch-all for mail-related unit files. A simple -`mail.target` file is also provided. +## Systemd units + +These unit files are meant to be used in the user session. You may drop them into `${XDG_DATA_HOME}/systemd/user` followed by `systemctl --user daemon-reload` to have systemd aware of the unit files. + +These files are meant to be triggered either manually using `systemctl --user start offlineimap.service` or by enabling the timer unit using `systemctl --user enable offlineimap.timer`. Additionally, specific accounts may be triggered by using `offlineimap@myaccount.timer` or `offlineimap@myaccount.service`. + +These unit files are installed as being enabled via a `mail.target` unit which is intended to be a catch-all for mail-related unit files. A simple `mail.target` file is also provided. diff --git a/docs/Makefile b/docs/Makefile index 0efd63b..aadfd66 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -30,6 +30,7 @@ api: websitedoc: ./website-doc.sh releases ./website-doc.sh api + ./website-doc.sh contrib clean: $(RM) -f $(HTML_TARGETS) diff --git a/docs/website-doc.sh b/docs/website-doc.sh index abfa096..0565c71 100755 --- a/docs/website-doc.sh +++ b/docs/website-doc.sh @@ -6,15 +6,38 @@ ARGS=$* SPHINXBUILD=sphinx-build TMPDIR='/tmp/offlineimap-sphinx-doctrees' -WEBSITE='../website' +WEBSITE='./website' DOCBASE="${WEBSITE}/_doc" DESTBASE="${DOCBASE}/versions" VERSIONS_YML="${WEBSITE}/_data/versions.yml" ANNOUNCES_YML="${WEBSITE}/_data/announces.yml" +CONTRIB_YML="${WEBSITE}/_data/contribs.yml" +CONTRIB="${DOCBASE}/contrib" +HEADER="# DO NOT EDIT MANUALLY: it is generated by a script (website-doc.sh)." + + +function fix_pwd () { + cd "$(git rev-parse --show-toplevel)" || \ + exit 2 "cannot determine the root of the repository" + test -d "$DESTBASE" || exit 1 +} + +fix_pwd +version="v$(./offlineimap.py --version)" + + + +# +# Add the doc for the contrib files. +# +function contrib () { + echo $HEADER > "$CONTRIB_YML" + # systemd + cp -afv "./contrib/systemd/README.md" "${CONTRIB}/systemd.md" + echo "- {filename: 'systemd', linkname: 'Integrate with systemd'}" >> "$CONTRIB_YML" +} -version="v$(../offlineimap.py --version)" -test -d "$DESTBASE" || exit 1 # # Build the sphinx documentation. @@ -24,13 +47,13 @@ function api () { dest="${DESTBASE}/${version}" echo "Cleaning target directory: $dest" rm -rf "$dest" - $SPHINXBUILD -b html -d "$TMPDIR" doc-src "$dest" + $SPHINXBUILD -b html -d "$TMPDIR" ./docs/doc-src "$dest" # Build the JSON definitions for Jekyll. # This let know the website about the available APIs documentations. echo "Building Jekyll data: $VERSIONS_YML" # Erase previous content. - echo "# DO NOT EDIT MANUALLY: it is generated by a script (website-doc.sh)" > "$VERSIONS_YML" + echo "$HEADER" > "$VERSIONS_YML" for version in $(ls "$DESTBASE" -1 | sort -nr) do echo "- $version" @@ -44,7 +67,7 @@ function api () { # function releases () { # Copy the Changelogs. - for foo in ../Changelog.md ../Changelog.maint.md + for foo in ./Changelog.md ./Changelog.maint.md do cp -afv "$foo" "$DOCBASE" done @@ -52,8 +75,8 @@ function releases () { # Build the announces JSON list. Format is JSON: # - {version: '', link: ''} # - ... - echo "# DO NOT EDIT MANUALLY: it is generated by a script (website-doc.sh)" > "$ANNOUNCES_YML" - grep -E '^### OfflineIMAP' ../Changelog.md | while read title + echo "$HEADER" > "$ANNOUNCES_YML" + grep -E '^### OfflineIMAP' ./Changelog.md | while read title do link="$(echo $title | sed -r -e 's,^### (OfflineIMAP.*)\),\1,' \ | tr '[:upper:]' '[:lower:]' \ @@ -68,11 +91,11 @@ function releases () { } - exit_code=0 test "n$ARGS" = 'n' && ARG='usage' # no option passed for arg in $ARGS do + # PWD was fixed at the very beginning. case "n$arg" in "nreleases") releases @@ -80,8 +103,11 @@ do "napi") api ;; + "ncontrib") + contrib + ;; "nusage") - echo "Usage: website-doc.sh " + echo "Usage: website-doc.sh " ;; *) echo "unkown option $arg"