94 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| #================================================================================
 | |
| # changeDefaultViews.bash - change HDL Project views
 | |
| # * Usage master => student: ``changeDefaultViews.bash -v -a masterVersion -n studentVersion``
 | |
| # * Usage student => master: ``changeDefaultViews.bash -v -a studentVersion -n masterVersion``
 | |
| # * Usage: add ``-r`` for deleting the specified actual view **dangerous**
 | |
| #
 | |
| base_directory="$(dirname "$(readlink -f "$0")")"
 | |
| pushd $base_directory
 | |
| base_directory="$base_directory/.."
 | |
| 
 | |
| SEPARATOR='--------------------------------------------------------------------------------'
 | |
| INDENT='  '
 | |
| 
 | |
| echo "$SEPARATOR"
 | |
| echo "-- ${0##*/} Started!"
 | |
| echo ""
 | |
| 
 | |
| #--------------------------------------------------------------------------------
 | |
| # Parse command line options
 | |
| #
 | |
| project_directory=''
 | |
| actual_view='masterVersion'
 | |
| new_view='studentVersion'
 | |
| 
 | |
| usage='Usage: changeDefaultViews.bash [-p projectDir] [-r] [-v] [-h]'
 | |
| while getopts 'p:a:n:rvh' options; do
 | |
|   case $options in
 | |
|     p ) project_directory=$OPTARG;;
 | |
|     a ) actual_view=$OPTARG;;
 | |
|     n ) new_view=$OPTARG;;
 | |
|     r ) delete_actual_view=1;;
 | |
|     v ) verbose=1;;
 | |
|     h ) echo -e $usage
 | |
|           exit 1;;
 | |
|     * ) echo -e $usage
 | |
|           exit 1;;
 | |
|   esac
 | |
| done
 | |
| if [ -z "$project_directory" ]; then
 | |
|   project_directory="$base_directory"
 | |
| else
 | |
|   project_directory="$base_directory/$project_directory"
 | |
| fi
 | |
| 
 | |
| #-------------------------------------------------------------------------------
 | |
| # Display info
 | |
| #
 | |
| if [ -n "$verbose" ] ; then
 | |
|   echo "$SEPARATOR"
 | |
|   echo "Changing default views for HDL Designer"
 | |
|   echo "${INDENT}in $project_directory"
 | |
|   echo "${INDENT}from $actual_view to $new_view"
 | |
|   if [ -n "$delete_actual_view" ] ; then
 | |
|     echo "Delete all $actual_view in $project_directory"
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| #-------------------------------------------------------------------------------
 | |
| # Remove generated and cache files
 | |
| #
 | |
| ./cleanGenerated.bash
 | |
| 
 | |
| #-------------------------------------------------------------------------------
 | |
| # Change views in configuration files
 | |
| #
 | |
| find $project_directory -type f -name '*._epf' \
 | |
|   | xargs sed -i "s/$actual_view/$new_view/g"
 | |
| 
 | |
| #-------------------------------------------------------------------------------
 | |
| # Remove all acutal views File
 | |
| #
 | |
| if [ -n "$delete_actual_view" ] ; then
 | |
|   project_directory=`realpath $project_directory`
 | |
|   echo $project_directory
 | |
|   echo "Delete $actual_view"
 | |
|   find $project_directory/ -type f -iname "*$actual_view*" -exec echo "rm {}" \;
 | |
|   find $project_directory/ -type f -iname "*$actual_view*" -exec rm {} \;
 | |
|   # For HDL Designer file naming convention
 | |
|   # making uppercase letters to @lowercase masterVersion = master@version
 | |
|   actual_view="$(sed -E s/\([A-Z]\)/@\\L\\1/g <<< $actual_view)"
 | |
|   find $project_directory/ -type f -name "*$actual_view*" -exec echo "rm {}" \;
 | |
|   find $project_directory/ -type f -name "*$actual_view*" -exec rm {} \;
 | |
| 
 | |
| fi
 | |
| 
 | |
| #-------------------------------------------------------------------------------
 | |
| # Exit
 | |
| #
 | |
| echo ""
 | |
| echo "-- ${0##*/} Finished!"
 | |
| echo "$SEPARATOR"
 | |
| popd |