#!/bin/bash
# d2d
#
#	Purpose:
#		Generates API Reference for rikulo
#
#Copyright (C) 2012 Potix Corporation. All Rights Reserved.
#
nodosfilewarning=true
SDK=/usr/dart/dart-sdk
if [ ! -d $SDK ] ; then
  echo $SDK not found
  echo "Please link /usr/dart to Dart Editor's folder."
  exit
fi
homedir=$0
homedir=${homedir%/*}
if [ "$homedir" = "." ] ; then
  homedir=".."
elif [ "$homedir" = "${homedir%/*}" ] ; then
  homedir="."
else
  homedir=${homedir%/*}
fi
if [ "$TERM" = "cygwin" ] || [ "$OSTYPE" = "cygwin" ] ; then
  homedir=$(cygpath -u $homedir)
  dartdoc=dartdoc.bat
else
  dartdoc=dartdoc
fi
outdir=$homedir/out/dartdoc
libdir=$homedir/lib
yaml=$homedir/pubspec.yaml

mkdir -p $outdir
rm -rf $outdir/*

if [ ! -f $yaml ] ; then
	echo $yaml not found
	exit 1
fi
ver=$(grep version: $yaml)
ver=${ver#version: }

PATH=$PATH:$SDK/bin
echo Compiling $libdir $ver
$dartdoc --package-root $homedir/packages --exclude-lib args,args.src.parser,args.src.usage,logging,meta,metadata,js --out $outdir $libdir/*.dart
if [ ! -f $outdir/index.html ] ; then
	echo $outdir/index.html not found. Failed?
	exit 1
fi

cd $outdir
echo Process HTML files at $(pwd)
tooldir=../../tool/lib

function doHtml {
	sedfl=$1
	if [ ! -f $sedfl ] ; then
		echo $sedfl not found
		exit
	fi
	for f in *; do
		if [ -d $f ] ; then
			(
			echo Process $f
			cd $f
			doHtml ../$sedfl
			)
		elif [ ${f%.html} != $f ] ; then
			sed -f $sedfl -e "s/{{{version}}}/$ver/" $f > dd.tmp
			mv -f dd.tmp $f
		fi
	done
}

doHtml $tooldir/html.sed
