1#!/bin/bash -e 2 3# RS Invocation script to FileCheck, used to check generated Java 4# files or C++ files. This assumes that the .rs source file has the 5# Java package name "foo". 6 7print_help() { 8 help_str="Usage: %s --output=<output-dir> \ 9--filecheck=<path-to-filecheck> \ 10--lang=[Java/C++] \ 11[--type=<typename>] \ 12[--check-prefix=<prefix>] \ 13<.rs file>\n" 14 15 printf "$help_str" $0 16} 17 18for arg in "$@" 19do 20 case $arg in 21 --output=*) 22 outdir="${arg#*=}" 23 ;; 24 --filecheck*) 25 filecheck="${arg#*=}" 26 ;; 27 --lang*) 28 lang="${arg#*=}" 29 ;; 30 --type*) 31 type="${arg#*=}" 32 ;; 33 --check-prefix=*) 34 check_prefix="${arg}" 35 ;; 36 --help) 37 print_help 38 exit 0 39 ;; 40 *) 41 rsfile="$arg" 42 ;; 43 esac 44done 45 46if [[ (-z $outdir) || (-z $filecheck) || (-z $rsfile) ]] 47then 48 print_help 49 exit 1 50fi 51 52if [[ ! -f $rsfile ]] 53then 54 echo "Input file $rsfile doesn't exist" 55 exit 1 56fi 57 58rsfile_basename=$(basename "$rsfile") 59 60if [[ $lang == "Java" ]] 61then 62 if [[ (-z $type) ]] 63 then 64 filecheck_inputfile=foo/ScriptC_${rsfile_basename%.*}.java 65 else 66 filecheck_inputfile=foo/ScriptField_${type}.java 67 fi 68elif [[ $lang == "C++" ]] 69then 70 if [[ (-n $type) ]] 71 then 72 echo --type not supported for C++ 73 print_help 74 exit 1 75 fi 76 filecheck_inputfile=ScriptC_${rsfile_basename%.*}.h 77else 78 echo Unknown language "$lang" 79 print_help 80 exit 1 81fi 82 83if [[ ! -f $filecheck ]] 84then 85 echo "No file at supplied FileCheck path $filecheck" 86 exit 1 87fi 88 89if [[ ! -f $outdir/$filecheck_inputfile ]] 90then 91 echo "Input file $outdir/$filecheck_inputfile doesn't exist" 92 exit 1 93fi 94 95"$filecheck" -input-file "$outdir"/$filecheck_inputfile ${check_prefix} "$rsfile" 96