WSJT-X/doc/build-doc.sh

142 lines
3.8 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Title : build-doc.sh
# Description : WSJT-X Documentation build script
# Author : KI7MT
# Email : ki7mt@yahoo.com
# Date : JAN-30-2014
# Version : 0.4
# Usage : ./build-doc.sh [ option ]
# Notes : requires asciidoc, source-highlight
#==============================================================================
# exit on error
set -e
#add some color
red='\033[01;31m'
green='\033[01;32m'
yellow='\033[01;33m'
cyan='\033[01;36m'
no_col='\033[01;37m'
# misc var's
base_dir=$(pwd)
src_dir="$base_dir/source"
c_asciidoc="asciidoc -b xhtml11 -a max-width=1024px"
script_name=$(basename $0)
doc_version="1.3"
# build functions
function build_no_toc() { # no toc
echo -e ${yellow}'Building Main With No TOC'${no_col}
$c_asciidoc -o wsjtx-main.html $src_dir/wsjtx-main.adoc
echo -e ${green}'.. wsjtx-main.html'${no_col}
}
function build_toc1() { # top toc
echo -e ${yellow}'Building Main with Top TOC'${no_col}
$c_asciidoc -a toc -o wsjtx-main-toc1.html $src_dir/wsjtx-main.adoc
echo -e ${green}'.. wsjtx-main-toc1.html'${no_col}
}
function build_toc2() { # left toc
echo -e ${yellow}'Building Main with Left TOC'${no_col}
$c_asciidoc -a toc2 -o wsjtx-main-toc2.html $src_dir/wsjtx-main.adoc
echo -e ${green}'.. wsjtx-main-toc2.html'${no_col}
}
function build_support_pages() { # build all remaining pages
echo
echo -e ${yellow}'Building Support Pages'${no_col}
$c_asciidoc -o rig-config-main.html $src_dir/rig-config-main.adoc
echo -e ${green}'.. rig-config-main.html'${no_col}
# setup rig file array
declare -a subpage=('adat' 'alinco' 'aor' 'drake' 'elecraft' 'flexrad' 'icom' \
'kenwood' 'softrock' 'tentec' 'yaesu')
# loop through rig-config pages
for rig in "${subpage[@]}"
do
$c_asciidoc -a toc2 -o rig-config-$rig.html $src_dir/rig-config-$rig.adoc
echo -e ${green}".. rig-config-$rig.html"${no_col}
done
$c_asciidoc -o rig-config-template.html $src_dir/rig-config-template.adoc
echo -e ${green}'.. rig-config-template.html'${no_col}
}
function build_quick_ref() { # build quick-reference guide
echo -e ${yellow}'Building Quick Reference Guide'${no_col}
$c_asciidoc -a toc2 -o quick-reference.html $src_dir/quick-reference.adoc
echo -e ${green}'.. quick-reference.html'${no_col}
}
# start the main script
clear
echo -e ${yellow}"*** Building WSJT-X User Guide for:" ${cyan}$doc_version\
${no_col}${yellow}" ***\n" ${no_col}
# without TOC
if [[ $1 = "" ]]
then
build_no_toc
build_quick_ref
build_support_pages
# top TOC
elif [[ $1 = "toc1" ]]
then
build_toc1
build_quick_ref
build_support_pages
# left TOC
elif [[ $1 = "toc2" ]]
then
build_toc2
build_quick_ref
build_support_pages
# all toc versions
elif [[ $1 = "all" ]]
then
build_no_toc
build_toc1
build_toc2
build_quick_ref
build_support_pages
# quick-reference.html only
elif [[ $1 = "quick-ref" ]]
then
build_quick_ref
# Usage: if something other than "", toc1, toc2 or all is entered as $1 display usage
# message and exit.
#
# To-Do: this should be re-written to redirect the user to select
# 1 of 4 proper options v.s. exiting. Future version should provide
# a terminal GUI, Whiptail, Dialog, Zenity etc.
else
clear
echo -e ${red}" * INPUT ERROR *\n"${no_col}
echo 'Script Usage: build-doc.sh [ option ]'
echo
echo 'For with No TOC: ' ./$script_name
echo 'For with Top TOC: './$script_name 'toc1'
echo 'For with Left TOC: './$script_name 'toc2'
echo 'For All Versions: ' ./$script_name 'all'
echo
echo Please re-enter using the examples above.
echo
exit 1
fi
echo
echo -e ${yellow}'All HTML files have been saved to:'${no_col}${cyan} "$base_dir" ${no_col}
echo
exit 0