From 39c51f889c1d68a6bbda000137c5745c832743fb Mon Sep 17 00:00:00 2001 From: Onkel Andy Date: Sun, 3 Mar 2024 21:50:53 +0100 Subject: [PATCH] docu: additional build local doc shell script working for Mac OS X --- doc/build_doc_local_osx.sh | 221 +++++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 doc/build_doc_local_osx.sh diff --git a/doc/build_doc_local_osx.sh b/doc/build_doc_local_osx.sh new file mode 100644 index 0000000000..89369957b2 --- /dev/null +++ b/doc/build_doc_local_osx.sh @@ -0,0 +1,221 @@ +# Bau der Doku für SmartHomeNG +# +# Das Skript checkt dazu den Core und die Plugins aus und baut die Dokumentation +# +# Das neu erzeugte Verzeichnis kann gelöscht werden, nachdem die Doku auf +# den Webserver kopiert wurde +# + +if [ "$1" == "-h" ]; then + echo + echo Skript zum Erzeugen der Dokumentation für SmartHomeNG + echo ===================================================== + echo + echo Optionen: + echo -h - Anzeigen dieser Hilfe + echo -u - Nur die Anwender Dokumentation erzeugen + echo -d - Nur die Entwickler Dokumentation erzeugen + echo + exit +fi + +KEEP_REPO=True +#if [ "$1" == "-f" ] || [ "$2" == "-f" ] || [ "$3" == "-f" ]; then +# FORCE_CHECKOUT=True +#fi + +DOC=user +if [ "$1" == "-u" ] || [ "$2" == "-u" ] || [ "$3" == "-u" ]; then + DOC=user +fi +if [ "$1" == "-d" ] || [ "$2" == "-d" ] || [ "$3" == "-d" ]; then + DOC=developer +fi + +DESTBRANCH=develop +#if [ "$1" == "-m" ] || [ "$2" == "-m" ] || [ "$3" == "-m" ]; then +# DESTBRANCH=master +#fi + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +DIR=$DIR + +ACCOUNT=smarthomeNG +REPO=smarthome +LOCALREPO= +#LOCALREPO=work + +DEVELOPDOC=developer +USERDOC=user + + +GIT_CHECKOUT=False +#GIT_CHECKOUT=True +echo $DIR/$LOCALREPO/doc +if [ -d "$DIR/$LOCALREPO/doc" ]; then + if [ "${FORCE_CHECKOUT,,}" != "true" ]; then + GIT_CHECKOUT=False + fi +fi + +cd $DIR + +echo +echo +if [ "$(echo "$DOC" | tr '[:upper:]' '[:lower:]')" == "all" ]; then + echo Erzeugen der vollständigen Dokumentation für SmartHomeNG + echo ======================================================== +fi +echo +if [ "$(echo "$DOC" | tr '[:upper:]' '[:lower:]')" == "developer" ]; then + echo Erzeugen der Entwicklerdokumentation für SmartHomeNG + echo ==================================================== +fi +if [ "$(echo "$DOC" | tr '[:upper:]' '[:lower:]')" == "user" ]; then + echo Erzeugen der Anwenderdokumentation für SmartHomeNG + echo ================================================== +fi +echo +python3 -V +python3 -c "import sphinx" 2> /dev/null +if [ "$?" == "1" ]; then + echo Vor Ausführung dieses Skriptes zum Erstellen der $ACCOUNT/$REPO Doku + echo \(branch $DESTBRANCH\), bitte prüfen ob Sphinx installiert ist. + echo + echo Die Installation folgender Pakete ist notwendig: + echo + echo -e "\t Sphinx (Version >= 3.0)" + echo -e "\t sphinx_rtd_theme" + echo -e "\t recommonmark (Version >= 0.6.0)" + echo -e "\t ruamel.yaml (passend zur Python Version)" + echo + echo Die Installation von Sphinx kann mit folgendem Kommando durchgeführt werden: + echo + echo -e "\t $ cd /usr/local/smarthome/doc" + echo -e "\t $ pip3 install -r requirements.txt" + echo + exit +fi +if [ "$(echo "$KEEP_REPO" | tr '[:upper:]' '[:lower:]')" != "true" ]; then + echo und legt die entstandene Dokumentation in \'$DIR/html\' ab. +fi +echo +echo Sollten die build Verzeichnisse bereits existieren, werden die alten +echo gebauten Versionen während des Skriptes gelöscht. Der Account unter dem +echo dieses Skript ausgeführt wird, muss Rechte zum anlegen von Verzeichnissen +echo in \'$DIR\' haben. +echo +if [ "$(echo "$GIT_CHECKOUT" | tr '[:upper:]' '[:lower:]')" == "true" ]; then + echo Das Skript clont von github den aktuellen Stand des Branches \'$DESTBRANCH\' aus den + echo Repositories \'smarthome\' und \'plugins\'. +else + echo ACHTUNG: Das Skript verwendet einen bereits bestehenden lokalen Clone + echo der Repositories. + +fi +echo +echo Während des Laufes erfolgt die Ausgabe einer Reihe von Warnungen. Das ist +echo normal. Es wurden markdown \(.md\) Dateien gefunden, die bewusst nicht in die +echo Dokumentation aufgenommen wurden. Darauf weisen diese Warnungen hin. + +echo +read -rsp $'Um fortzufahren ENTER drücken, zum Abbruch ^C drücken...\n' + + +#if [ "${GIT_CHECKOUT,,}" == "true" ]; then +# echo +# if [ -d "$LOCALREPO" ]; then +# echo Lösche altes Arbeitsverzeichnis \'$LOCALREPO\' +# rm -rf $LOCALREPO +# fi +# +# if [ ! -d "$LOCALREPO" ]; then +# echo Erzeuge temporäres Arbeitsverzeichnis \'$LOCALREPO\' +# mkdir $LOCALREPO +# fi +# +# echo +# echo echo Auschecken des Core von github: +# git clone -b $DESTBRANCH https://github.com/$ACCOUNT/$REPO.git $LOCALREPO +# +# echo +# echo git status \($REPO\): +# cd $LOCALREPO +# git status +# +# echo +# echo Auschecken der Plugins von github: +# +# mkdir plugins >nul +# cd plugins +# git clone -b $DESTBRANCH https://github.com/$ACCOUNT/plugins.git . +# +# echo +# cd $DIR +# cd $LOCALREPO +# echo git status \(plugins\): +# git status +#fi + + +if [ "$(echo "$DOC" | tr '[:upper:]' '[:lower:]')" == "developer" ] || [ "$(echo "$DOC" | tr '[:upper:]' '[:lower:]')" == "all" ]; then + cd $DIR/ +# cd $LOCALREPO +# cd doc + echo + echo Bau der Entwickler-Dokumentation: + cd $DEVELOPDOC + rm -r build + make clean || exit + make html || exit + echo + echo Bau der Entwickler-Dokumentation ist abgeschlossen! + echo + echo Die Startseite ist: \'${DIR}/user/build/html/index.html\' +fi + +if [ "$(echo "$DOC" | tr '[:upper:]' '[:lower:]')" == "user" ] || [ "$(echo "$DOC" | tr '[:upper:]' '[:lower:]')" == "all" ]; then + cd $DIR/ +# cd $LOCALREPO +# cd doc + echo + echo Bau der Anwender-Dokumentation: + cd $USERDOC + rm -r build + make clean || exit + make html || exit + echo + echo Bau der Anwender-Dokumentation ist abgeschlossen! + echo + echo Die Startseite ist: \'${DIR}/user/build/html/index.html\' +fi + + +cd $DIR + echo + +#if [ "${KEEP_REPO,,}" == "true" ]; then +# echo Geclontes Repository ist erhalten +#fi + +if [ "$(echo "$KEEP_REPO" | tr '[:upper:]' '[:lower:]')" != "true" ]; then + if [ -d "$DIR/html" ]; then + echo Lösche das existierende Verzeichnis $DIR/html + rm -rf $DIR/html + fi + echo Verschiebe die neu gebaute Doku zu $DIR/html + mv $LOCALREPO/doc/build/html $DIR + + echo Lösche das temporäre Arbeitsverzeichnis $LOCALREPO + rm -rf $LOCALREPO + + echo + echo + echo + echo Zur Veröffentlichung der Doku \(Branch $DESTBRANCH\): + echo + echo Bitte jetzt noch den Inhalt des Verzeichnisses \'$DIR/html\' + echo auf den webserver www.smarthomeNG.de in das Verzeichnis /dev kopieren + echo +fi