#!/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"