blob: 0f876617deff6d4d455c4bfb74091005a57a212d [file] [log] [blame]
#!/bin/bash
# To process a template, run this script with the path to a .tmpl file, e.g.,
#
# $ $DART/utils/template/template srcfile [outfile]
#
# where:
# srcfile - the template file file.tmpl (if .tmpl missing .tmpl is assumed).
# outfile - the Dart class file to generate, if outfile not specified then
# outfile is srcfile.dart (srcfile name w/o ext).
#
# To use your Dart VM must be on your $PATH e.g.,
#
# export PATH=$PATH:/home/<your name>/dart-all/dart/out/Release_ia32/
# Minimum/Maximum number of arguments
MINARGS=1
MAXARGS=2
# get the number of command-line arguments given
ARGC=$#
SRCFILE=
OUTFILE=
# check to make sure enough arguments were given or exit
if [[ $ARGC -eq $MINARGS ]];
then
SRCFILE=$1
IDX=`expr index "$SRCFILE" .`
if [[ $IDX -eq 0 ]];
then
# No extension
FILENAME=$SRCFILE
EXT=
else
FILENAME=${SRCFILE:0:(IDX-1)}
EXT=${SRCFILE:IDX}
fi
TMPL_EXT='tmpl'
if [ "$EXT" = "$TMPL_EXT" ];
then
SRCFILE="$PWD/$1"
OUTFILE="$PWD/$FILENAME.dart"
else
SRCFILE="$PWD/$1.$TMPL_EXT"
OUTFILE="$PWD/$FILENAME.dart"
fi
elif [[ $ARGC -eq 2 ]]
then
SRCFILE="$PWD/$1"
OUTFILE="$PWD/$2"
elif [[ $ARGC -lt $MINARGS ]];
then
echo -e "\033[31mToo few arguments given (Minimum $MINARGS argument)\033[0m"
exit 1
elif [[ $ARGC -gt $MAXARGS ]];
then
echo -e "\033[31mToo many arguments\033[0m"
exit 1
fi
if [ "$SRCFILE" = "$OUTFILE" ];
then
echo -e "\033[31msource file must be different from the output file \033[0m"
echo -e "source file: $SRCFILE"
echo -e "output file: $OUTFILE"
exit 1
fi
# Path of this bash script.
BASE_DIR="$( cd "$( dirname "$0" )" && pwd )"
# Pre-process the file
dart $BASE_DIR/tool.dart $SRCFILE $OUTFILE