#!/bin/sh

# ===========================================================================
# aenig4, Enigma M4 cipher machine emulator.
#
# This script is used by the author to build the Windows package under Cygwin.
# ===========================================================================

case $# in
	2) aenig4_vmaj=$1; aenig4_vmin=$2 ;;
	*) echo "$0 major_version minor_version"; exit 0 ;;
esac

aenig4_xver=$aenig4_vmaj.$aenig4_vmin
aenig4_wver=$aenig4_vmaj$aenig4_vmin
aenig4_xname=aenig4-$aenig4_xver
aenig4_wname=aenig4v$aenig4_wver
aenig4_targz=$aenig4_xname.tar.gz
sedmask='s/$/
/'

show_menu () {
	echo "*********"
	echo " M E N U "
	echo "*********"
	echo "1. Download $aenig4_targz"
	echo "2. Compile $aenig4_xname"
	echo "3. Make $aenig4_wname.zip"
	echo "4. Clean all"
	echo "5. Remove $aenig4_targz"
	echo "6. Exit"
}

download_src () {
	if [ ! -f $aenig4_targz ]
	then
		wget -c https://jorgicor.niobe.org/aenig4/$aenig4_targz
		if [ $? -ne 0 ]
		then
			echo "Error downloading $aenig4_targz"
		else
			echo "Ok"
		fi
	else
		echo "Ok"
	fi
}

compile_src () {
	tar -xvzf $aenig4_targz
	cd $aenig4_xname
#	./configure CC=i686-w64-mingw32-gcc --target=i686-w64-mingw32
	./configure --host=i686-w64-mingw32
	make
#	make html
	cd ..
}

make_zip () {
	mkdir $aenig4_wname
	cd $aenig4_wname
	cp ../$aenig4_xname/src/aenig4.exe .
#	nroff -man doc/aenig4.1 | col -bx > aenig4.txt
	groff -m man -T html ../$aenig4_xname/doc/aenig4.1 > aenig4.html
	cp ../$aenig4_xname/COPYING copying.txt
	cp ../$aenig4_xname/README readme.txt
	cp ../$aenig4_xname/NEWS news.txt
	for i in *.txt
	do
		sed $sedmask $i > tmp.txt
		rm $i
		mv tmp.txt $i
	done
	sed -i 's,http://cryptomuseum.com/crypto/enigma/m4/index.htm,<a href="http://cryptomuseum.com/crypto/enigma/m4/index.htm">http://cryptomuseum.com/crypto/enigma/m4/index.htm</a>,' aenig4.html
	sed -i 's,https://jorgicor.niobe.org/aenig4,<a href="https://jorgicor.niobe.org/aenig4">https://jorgicor.niobe.org/aenig4</a>,' aenig4.html
	i686-w64-mingw32-strip aenig4.exe
	cd ..
	zip -r $aenig4_wname.zip $aenig4_wname
}

clean_all () {
	rm -r $aenig4_xname
	rm -r $aenig4_wname
}

remove_src () {
	rm $aenig4_targz
}

read_option () {
	local choice
	echo -n "Select option: "
	read choice
	case $choice in
		1) download_src ;;
		2) compile_src ;;
		3) make_zip ;;
		4) clean_all ;;
		5) remove_src ;;
		6) exit 0 ;;
		*) echo "Wrong option" ;;
	esac
}

while true
do
	show_menu
	read_option
done
