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"
 |