#!/bin/bash txturl='\033[1;36m' txturl1='\033[0;36m' txtg='\033[0;32m' NOCOLOR='\033[0m' repoupdate () { echo "" echo "--------------" echo "Repo update" echo "--------------" echo "" git fetch -q git pull -a } usage () { echo "" echo "--------------" echo " Documantation " echo "--------------" echo "" echo " USAGE: ./build.sh [OPTIONS]" echo "" echo " Examples of [OPTIONS] can be:" echo "" echo -e " ${txtg}all:${NOCOLOR} All " echo "" echo -e " ${txtg}faq:${NOCOLOR} FAQ " echo "" echo -e " ${txtg}iptables:${NOCOLOR} This tutorial demonstrates, howto setup iptables & howto use it " echo "" echo -e " ${txtg}infrastructure-as-code:${NOCOLOR} This tutorial demonstrates, howto use ansible to implement Infrastructure as Code " echo "" echo -e " ${txtg}network-scanning:${NOCOLOR} This tutorial demonstrates some common nmap port scanning scenarios and explains the output. " echo "" echo -e " ${txtg}network-adhoc:${NOCOLOR} This tutorial demonstrates, howto setup ad-hoc network & howto use it " echo "" echo -e " ${txtg}poc-datacollector:${NOCOLOR} This tutorial demonstrates, howto setup data collector & howto use it " echo "" echo -e " ${txtg}raspi-docker:${NOCOLOR} This tutorial demonstrates, howto setup docker on Raspberry PI & howto use it " echo "" echo -e " ${txtg}sidecar-firefox:${NOCOLOR} This tutorial demonstrates, howto setup firefox & howto use it as sidecar" echo "" echo -e " ${txtg}sensor-node:${NOCOLOR} This tutorial demonstrates, howto create a mote with Raspberry Pi and Arduino & howto use it " echo "" echo -e " ${txtg}ssh-tunneling:${NOCOLOR} This tutorial demonstrates, howto create a ssh-tunneling & howto use it " echo "" echo -e " ${txtg}tech-list:${NOCOLOR} This tutorial provides a list of commonly used tools " echo "" echo -e " ${txtg}xelatex-thesis:${NOCOLOR} This tutorial demonstrates, howto setup xelatex & howto use it " echo "" echo -e " ${txtg}help:${NOCOLOR} show this message" echo " ./build.sh help" echo "" echo " ********************************************" echo -e " ${txturl1}On Error:${NOCOLOR}" echo " Get https://hub.swarmlab.io:5480/v2/: x509: certificate" echo " ERROR: Get https://hub.swarmlab.io:5480/v2/: x509: certificate signed by unknown authority" echo -e " ${txturl1}run:${NOCOLOR}" echo -e " ${txtg}./0-get-certs.sh${NOCOLOR} " echo " ********************************************" echo "" echo -e " ---------------------------- ${txturl1}WSL2${NOCOLOR} --------------------------" echo "" echo -e " With Docker Desktop running on WSL 2, users can use: ${txtg}http://127.0.0.1:8080${NOCOLOR}" echo "" echo " ------------------------------------------------------------" echo "" echo "" echo " " } create_docs () { printf "\\n\\n===> Build docs" printf "\\n" docker stop swarmlab-documentation docker container rm swarmlab-documentation docker pull hub.swarmlab.io:5480/antora ./0-cert.error if [ $docdir == 'all' ];then docker run -ti --name swarmlab-documentation -p 8080:8080 -v $PWD:/antora -v $PWD/supplemental-ui:/antora/supplemental-ui hub.swarmlab.io:5480/antora /bin/sh -c "DOCSEARCH_ENABLED=true DOCSEARCH_ENGINE=lunr DOCSEARCH_INDEX_VERSION=latest NODE_PATH=/usr/local/lib/node_modules:\$NODE_PATH exec sh -c '/antora/build-all.sh'" else docker run -ti --name swarmlab-documentation -p 8080:8080 -v $PWD/$docdir:/antora -v $PWD/supplemental-ui:/antora/supplemental-ui hub.swarmlab.io:5480/antora /bin/sh -c "DOCSEARCH_ENABLED=true DOCSEARCH_ENGINE=lunr DOCSEARCH_INDEX_VERSION=latest NODE_PATH=/usr/local/lib/node_modules:\$NODE_PATH exec sh -c '/antora/run/$build'" fi } COMMAND_CREATE=0 build="" docdir="" while [ "$1" != "" ]; do PARAM=$(echo "$1" | awk -F= '{print $1}') VALUE=$(echo "$1" | awk -F= '{print $2}') case $PARAM in help) usage exit ;; network-scanning) DESC="network-scanning" ; build="build-intro.sh" ; docdir="intro" ; COMMAND_CREATE=1 ;; infrastructure-as-code) DESC="infrastructure-as-code" ; build="build.sh" ; docdir="infrastructure-as-code" ; COMMAND_CREATE=1 ;; sidecar-firefox) DESC="sidecar-firefox" ; build="build.sh" ; docdir="sidecar-firefox" ; COMMAND_CREATE=1 ;; xelatex-thesis) DESC="xelatex-thesis" ; build="build.sh" ; docdir="xelatex-thesis" ; COMMAND_CREATE=1 ;; faq) DESC="faq" ; build="build.sh" ; docdir="faq" ; COMMAND_CREATE=1 ;; all) DESC="all" ; build="build.sh" ; docdir="all" ; COMMAND_CREATE=1 ;; network-adhoc) DESC="network-adhoc" ; build="build.sh" ; docdir="network-adhoc" ; COMMAND_CREATE=1 ;; sensor-node) DESC="Sensor node" ; build="build.sh" ; # source adoc directory docdir="sensor-node" ; COMMAND_CREATE=1 ;; ssh-tunneling) DESC="SSH Tunneling" ; build="build.sh" ; # source adoc directory docdir="ssh-tunneling" ; COMMAND_CREATE=1 ;; poc-datacollector) DESC="Data Collector" ; build="build.sh" ; # source adoc directory docdir="poc-datacollector" ; COMMAND_CREATE=1 ;; raspi-docker) DESC="raspi-docker" ; build="build.sh" ; # source adoc directory docdir="raspi-docker" ; COMMAND_CREATE=1 ;; tech-list) DESC="tech-list" ; build="build.sh" ; # source adoc directory docdir="tech-list" ; COMMAND_CREATE=1 ;; iptables) DESC="iptables" ; build="build.sh" ; # source adoc directory docdir="iptables" ; COMMAND_CREATE=1 ;; *) echo "ERROR: unknown parameter \"$PARAM\"" usage exit 1 ;; esac shift done if [ $COMMAND_CREATE -eq 1 ]; then create_docs else repoupdate usage fi