add solutions
This commit is contained in:
@@ -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