#!/usr/bin/env bash

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

for i in node npm git; do
	if ! command -v $i &> /dev/null; then
    	echo ">> $i could not be found, please install"
		exit
	fi
done

# http-server not pulled, pulling
if [ ! -d "$SCRIPT_DIR/http-server" ]; then
	echo ">> This script will pull a lightweight nodejs http-server from https://github.com/http-party/http-server and make ./public avaiable as local http service, are you okay with this?"
	read -p "Continue (y/n)?" choice
	case "$choice" in 
  		y|Y ) echo "yes";;
  		n|N ) echo "no";;
  		* ) echo "invalid";;
	esac
	git clone https://github.com/http-party/http-server
fi

# http-server depends not pulled, pulling
if [ ! -d "$SCRIPT_DIR/http-server/node_modules/" ]; then
	echo ">> http-server dependencies not pulled, pulling"
	npm --prefix "$SCRIPT_DIR"/http-server i
fi

# website not built, building
if [ ! -d "$SCRIPT_DIR/../public" ]; then
	echo ">> website not build, building"
	pushd "$SCRIPT_DIR"/..
	ikiwiki --setup ./ikiwiki.setup
	popd
fi

# starting server
echo ">> starting http server"
node "$SCRIPT_DIR"/http-server/bin/http-server -c-1 "$SCRIPT_DIR"/../public
