add solutions
This commit is contained in:
		
							
								
								
									
										94
									
								
								zz-solutions/04-Lissajous/Scripts/changeDefaultViews.bash
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								zz-solutions/04-Lissajous/Scripts/changeDefaultViews.bash
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,94 @@ | ||||
| #!/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 | ||||
		Reference in New Issue
	
	Block a user