96 lines
1.6 KiB
Bash
Executable File
96 lines
1.6 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
# RS Invocation script to FileCheck, used to check generated Java
|
|
# files or C++ files. This assumes that the .rs source file has the
|
|
# Java package name "foo".
|
|
|
|
print_help() {
|
|
help_str="Usage: %s --output=<output-dir> \
|
|
--filecheck=<path-to-filecheck> \
|
|
--lang=[Java/C++] \
|
|
[--type=<typename>] \
|
|
[--check-prefix=<prefix>] \
|
|
<.rs file>\n"
|
|
|
|
printf "$help_str" $0
|
|
}
|
|
|
|
for arg in "$@"
|
|
do
|
|
case $arg in
|
|
--output=*)
|
|
outdir="${arg#*=}"
|
|
;;
|
|
--filecheck*)
|
|
filecheck="${arg#*=}"
|
|
;;
|
|
--lang*)
|
|
lang="${arg#*=}"
|
|
;;
|
|
--type*)
|
|
type="${arg#*=}"
|
|
;;
|
|
--check-prefix=*)
|
|
check_prefix="${arg}"
|
|
;;
|
|
--help)
|
|
print_help
|
|
exit 0
|
|
;;
|
|
*)
|
|
rsfile="$arg"
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ (-z $outdir) || (-z $filecheck) || (-z $rsfile) ]]
|
|
then
|
|
print_help
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f $rsfile ]]
|
|
then
|
|
echo "Input file $rsfile doesn't exist"
|
|
exit 1
|
|
fi
|
|
|
|
rsfile_basename=$(basename "$rsfile")
|
|
|
|
if [[ $lang == "Java" ]]
|
|
then
|
|
if [[ (-z $type) ]]
|
|
then
|
|
filecheck_inputfile=foo/ScriptC_${rsfile_basename%.*}.java
|
|
else
|
|
filecheck_inputfile=foo/ScriptField_${type}.java
|
|
fi
|
|
elif [[ $lang == "C++" ]]
|
|
then
|
|
if [[ (-n $type) ]]
|
|
then
|
|
echo --type not supported for C++
|
|
print_help
|
|
exit 1
|
|
fi
|
|
filecheck_inputfile=ScriptC_${rsfile_basename%.*}.h
|
|
else
|
|
echo Unknown language "$lang"
|
|
print_help
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f $filecheck ]]
|
|
then
|
|
echo "No file at supplied FileCheck path $filecheck"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f $outdir/$filecheck_inputfile ]]
|
|
then
|
|
echo "Input file $outdir/$filecheck_inputfile doesn't exist"
|
|
exit 1
|
|
fi
|
|
|
|
"$filecheck" -input-file "$outdir"/$filecheck_inputfile ${check_prefix} "$rsfile"
|