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 |