320 lines
16 KiB
Bash
320 lines
16 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
#================================================================================
|
||
|
# deployLibs.bash - updates github repos for individual labos
|
||
|
# indend to push libs from [DiD-libs](https://gitlab.hevs.ch/course/did/did-libs.git)
|
||
|
# Example usage 1: ./Scripts/deployLibs.bash -v -p synd-did-labs -r https://github.com/hei-synd-did/did-labs.git
|
||
|
# Example usage 2: ./Scripts/deployLibs.bash -v -p ete-did-labs -r https://github.com/hei-ete-did/did-labs.git
|
||
|
# Example usage 3: ./Scripts/deployLibs.bash -v -p isc-did-labs -r https://github.com/hei-isc-did/did-labs.git
|
||
|
# Example usage 4: ./Scripts/deployLibs.bash -v -p did-chrono -r https://github.com/hei-synd-did/did-chrono.git
|
||
|
# Example usage 5: ./Scripts/deployLibs.bash -v -p did-cursor -r https://github.com/hei-synd-did/did-cursor.git
|
||
|
# Example usage 6: ./Scripts/deployLibs.bash -v -p did-inverter -r https://github.com/hei-ete-did/did-inverter.git
|
||
|
# Example usage 7: ./Scripts/deployLibs.bash -v -p did-synchro -r https://github.com/hei-ete-did/did-synchro.git
|
||
|
# Example usage 8: ./Scripts/deployLibs.bash -v -p did-kart-ebs3 -r https://github.com/hei-synd-did/did-kart-ebs3.git
|
||
|
# Example usage 9: ./Scripts/deployLibs.bash -v -p did-display -r https://github.com/hei-isc-did/did-display.git
|
||
|
# Example usage 10: ./Scripts/deployLibs.bash -v -p sem-labs -r https://github.com/hei-synd-sem/sem-labs.git
|
||
|
# Example usage 11: ./Scripts/deployLibs.bash -v -p car-labs -r https://github.com/hei-isc-car/car-labs.git
|
||
|
# Example usage 12: ./Scripts/deployLibs.bash -v -p car-heirv -r https://github.com/hei-isc-car/car-heirv.git
|
||
|
|
||
|
base_directory="$(dirname "$(readlink -f "$0")")"
|
||
|
pushd $base_directory
|
||
|
base_directory="$base_directory/.."
|
||
|
|
||
|
SEPARATOR='--------------------------------------------------------------------------------'
|
||
|
INDENT=' '
|
||
|
DATE=`date '+%Y-%m-%d %H:%M:%S'`
|
||
|
|
||
|
echo "$SEPARATOR"
|
||
|
echo "-- ${0##*/} Started!"
|
||
|
echo ""
|
||
|
|
||
|
#-------------------------------------------------------------------------------
|
||
|
# Parse command line options
|
||
|
#
|
||
|
project='did-labs'
|
||
|
repo='https://github.com/hei-synd-did/did-labs.git'
|
||
|
|
||
|
usage='Usage: deployLibs.bash [-p projectName] [-r repourl] [-v] [-h]'
|
||
|
while getopts 'p:r:vh' options; do
|
||
|
case $options in
|
||
|
p ) project=$OPTARG;;
|
||
|
r ) repo=$OPTARG;;
|
||
|
v ) verbose=1;;
|
||
|
h ) echo -e $usage
|
||
|
exit 1;;
|
||
|
* ) echo -e $usage
|
||
|
exit 1;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
#-------------------------------------------------------------------------------
|
||
|
# Display info
|
||
|
#
|
||
|
if [ -n "$verbose" ] ; then
|
||
|
echo "$SEPARATOR"
|
||
|
echo "-- $DATE: Deploy Libraries for Students"
|
||
|
echo "${INDENT}for $project"
|
||
|
echo "${INDENT}to $repo"
|
||
|
echo ""
|
||
|
fi
|
||
|
|
||
|
#-------------------------------------------------------------------------------
|
||
|
# Clean current repo
|
||
|
#
|
||
|
echo "Clean parent repo from intermediate files"
|
||
|
./cleanGenerated.bash
|
||
|
|
||
|
#-------------------------------------------------------------------------------
|
||
|
# Clone student repo
|
||
|
#
|
||
|
# Create a tmp subdirectory if it doesn't exist
|
||
|
echo "Create tmp folder"
|
||
|
mkdir -p tmp
|
||
|
cd tmp
|
||
|
|
||
|
# Get repo
|
||
|
echo "Clone student repo $project"
|
||
|
# Add login and access token to url
|
||
|
repo_access=$(echo $repo | sed 's/https\?:\/\///')
|
||
|
github_username=tschinz
|
||
|
github_accesstoken=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
|
||
|
repo_access="https://$github_username:$github_accesstoken@${repo_access}"
|
||
|
git clone $repo_access
|
||
|
if [ "$project" == "synd-did-labs" ]; then
|
||
|
cd did-labs
|
||
|
elif [ "$project" == "ete-did-labs" ]; then
|
||
|
cd did-labs
|
||
|
elif [ "$project" == "isc-did-labs" ]; then
|
||
|
cd did-labs
|
||
|
else
|
||
|
cd $project
|
||
|
fi
|
||
|
|
||
|
library_dest=`realpath "./Libs"`
|
||
|
library_source=`realpath "./../../.."`
|
||
|
mkdir -p $library_dest
|
||
|
|
||
|
# Copy needed libraries per project
|
||
|
echo "Update files in student repo $project"
|
||
|
if [ "$project" == "synd-did-labs" ]; then
|
||
|
echo " Copy libraries: Gates, IO, Sequential, Common, NanoBlaze"
|
||
|
cp -arf "$library_source/Gates/" "$library_dest/"
|
||
|
cp -arf "$library_source/IO/" "$library_dest/"
|
||
|
cp -arf "$library_source/Sequential/" "$library_dest/"
|
||
|
cp -arf "$library_source/Common/" "$library_dest/"
|
||
|
cp -arf "$library_source/Common_test/" "$library_dest/"
|
||
|
cp -arf "$library_source/NanoBlaze/" "$library_dest/"
|
||
|
elif [ "$project" == "ete-did-labs" ]; then
|
||
|
echo " Copy libraries: Gates, IO, Sequential, Operators, Common, NanoBlaze"
|
||
|
cp -arf "$library_source/Gates/" "$library_dest/"
|
||
|
cp -arf "$library_source/IO/" "$library_dest/"
|
||
|
cp -arf "$library_source/Sequential/" "$library_dest/"
|
||
|
cp -arf "$library_source/Operators/" "$library_dest/"
|
||
|
cp -arf "$library_source/Common/" "$library_dest/"
|
||
|
cp -arf "$library_source/Common_test/" "$library_dest/"
|
||
|
cp -arf "$library_source/NanoBlaze/" "$library_dest/"
|
||
|
elif [ "$project" == "isc-did-labs" ]; then
|
||
|
echo " Copy libraries: Gates, IO, Sequential, Common, NanoBlaze"
|
||
|
cp -arf "$library_source/Gates/" "$library_dest/"
|
||
|
cp -arf "$library_source/IO/" "$library_dest/"
|
||
|
cp -arf "$library_source/Sequential/" "$library_dest/"
|
||
|
cp -arf "$library_source/Common/" "$library_dest/"
|
||
|
cp -arf "$library_source/Common_test/" "$library_dest/"
|
||
|
cp -arf "$library_source/NanoBlaze/" "$library_dest/"
|
||
|
elif [ "$project" == "car-labs" ]; then
|
||
|
echo " Copy libraries: Common, Gates, Memory, Operators, Sequential"
|
||
|
library_dest=`realpath "./heirv32_sc/Libs"`
|
||
|
cp -arf "$library_source/Common/" "$library_dest/"
|
||
|
cp -arf "$library_source/Common_test/" "$library_dest/"
|
||
|
cp -arf "$library_source/Gates/" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
cp -arf "$library_source/Memory/" "$library_dest/"
|
||
|
cp -arf "$library_source/Operators/" "$library_dest/"
|
||
|
cp -arf "$library_source/Sequential/" "$library_dest/"
|
||
|
elif [ "$project" == "car-heirv" ]; then
|
||
|
echo " Copy libraries: Common, Gates, Memory, Operators, Sequential"
|
||
|
cp -arf "$library_source/Common/" "$library_dest/"
|
||
|
cp -arf "$library_source/Common_test/" "$library_dest/"
|
||
|
cp -arf "$library_source/Gates/" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
cp -arf "$library_source/Memory/" "$library_dest/"
|
||
|
cp -arf "$library_source/Operators/" "$library_dest/"
|
||
|
cp -arf "$library_source/Sequential/" "$library_dest/"
|
||
|
elif [ "$project" == "ele_labs" ]; then
|
||
|
echo " Copy libraries: Gates, IO, Sequential, Operators, Common, Memory, Modulation, NanoBlaze"
|
||
|
cp -ar "$library_source/Gates" "$library_dest/"
|
||
|
cp -ar "$library_source/IO" "$library_dest/"
|
||
|
cp -ar "$library_source/Sequential" "$library_dest/"
|
||
|
cp -ar "$library_source/Operators" "$library_dest/"
|
||
|
cp -ar "$library_source/Common" "$library_dest/"
|
||
|
cp -ar "$library_source/Common_test" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory_test" "$library_dest/"
|
||
|
cp -ar "$library_source/Modulation" "$library_dest/"
|
||
|
cp -ar "$library_source/Modulation_test" "$library_dest/"
|
||
|
cp -ar "$library_source/NanoBlaze" "$library_dest/"
|
||
|
cp -ar "$library_source/NanoBlaze_test" "$library_dest/"
|
||
|
elif [ "$project" == "sem-labs" ]; then
|
||
|
echo " Copy libraries: Common, RS232, AhbLite, Memory, RiscV, NanoBlaze"
|
||
|
cp -ar "$library_source/Common" "$library_dest/"
|
||
|
cp -ar "$library_source/Common_test" "$library_dest/"
|
||
|
cp -ar "$library_source/RS232" "$library_dest/"
|
||
|
cp -ar "$library_source/RS232_test" "$library_dest/"
|
||
|
cp -ar "$library_source/AhbLite" "$library_dest/"
|
||
|
cp -ar "$library_source/AhbLite_test" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory_test" "$library_dest/"
|
||
|
cp -ar "$library_source/RiscV" "$library_dest/"
|
||
|
cp -ar "$library_source/RiscV_test" "$library_dest/"
|
||
|
cp -ar "$library_source/NanoBlaze" "$library_dest/"
|
||
|
cp -ar "$library_source/NanoBlaze_test" "$library_dest/"
|
||
|
elif [ "$project" == "did-cursor" ]; then
|
||
|
echo " Copy libraries: Gates, IO, Sequential, Common, Lcd, Memory"
|
||
|
cp -ar "$library_source/Gates" "$library_dest/"
|
||
|
cp -ar "$library_source/IO" "$library_dest/"
|
||
|
cp -ar "$library_source/Sequential" "$library_dest/"
|
||
|
cp -ar "$library_source/Common" "$library_dest/"
|
||
|
cp -ar "$library_source/Common_test" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
cp -ar "$library_source/Lcd" "$library_dest/"
|
||
|
cp -ar "$library_source/Lcd_test" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory_test" "$library_dest/"
|
||
|
elif [ "$project" == "did-chrono" ]; then
|
||
|
echo " Copy libraries: Gates, IO, Sequential, Common, Lcd, Memory, RS232"
|
||
|
cp -ar "$library_source/Gates" "$library_dest/"
|
||
|
cp -ar "$library_source/IO" "$library_dest/"
|
||
|
cp -ar "$library_source/Sequential" "$library_dest/"
|
||
|
cp -ar "$library_source/Common" "$library_dest/"
|
||
|
cp -ar "$library_source/Common_test" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
cp -ar "$library_source/Lcd" "$library_dest/"
|
||
|
cp -ar "$library_source/Lcd_test" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory_test" "$library_dest/"
|
||
|
#cp -ar "$library_source/RS232" "$library_dest/"
|
||
|
#cp -ar "$library_source/RS232_test" "$library_dest/"
|
||
|
elif [ "$project" == "did-kart-ebs2" ]; then
|
||
|
echo " Copy libraries: Gates, IO, Sequential, Common, Lcd, Memory, RS232"
|
||
|
cp -ar "$library_source/Gates" "$library_dest/"
|
||
|
cp -ar "$library_source/IO" "$library_dest/"
|
||
|
cp -ar "$library_source/Sequential" "$library_dest/"
|
||
|
cp -ar "$library_source/Common" "$library_dest/"
|
||
|
cp -ar "$library_source/Common_test" "$library_dest/"
|
||
|
cp -ar "$library_source/I2C" "$library_dest/"
|
||
|
cp -ar "$library_source/I2C_test" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory_test" "$library_dest/"
|
||
|
cp -ar "$library_source/RS232" "$library_dest/"
|
||
|
cp -ar "$library_source/RS232_test" "$library_dest/"
|
||
|
elif [ "$project" == "did-kart-ebs3" ]; then
|
||
|
echo " Copy libraries: Common, Gates, I2C, Memory, RS232, IO, Sequential, UVM"
|
||
|
cp -ar "$library_source/Common" "$library_dest/"
|
||
|
cp -ar "$library_source/Common_test" "$library_dest/"
|
||
|
cp -ar "$library_source/Gates" "$library_dest/"
|
||
|
cp -ar "$library_source/I2C" "$library_dest/"
|
||
|
cp -ar "$library_source/I2C_test" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory_test" "$library_dest/"
|
||
|
cp -ar "$library_source/RS232" "$library_dest/"
|
||
|
cp -ar "$library_source/RS232_test" "$library_dest/"
|
||
|
cp -ar "$library_source/IO" "$library_dest/"
|
||
|
cp -ar "$library_source/Sequential" "$library_dest/"
|
||
|
cp -ar "$library_source/UVM" "$library_dest/"
|
||
|
cp -ar "$library_source/UVM_test" "$library_dest/"
|
||
|
elif [ "$project" == "did-synchro" ]; then
|
||
|
echo " Copy libraries: Gates, IO, Sequential, Common, Cordic"
|
||
|
cp -ar "$library_source/Gates" "$library_dest/"
|
||
|
cp -ar "$library_source/IO" "$library_dest/"
|
||
|
cp -ar "$library_source/Sequential" "$library_dest/"
|
||
|
cp -ar "$library_source/Operators" "$library_dest/"
|
||
|
cp -ar "$library_source/Common" "$library_dest/"
|
||
|
cp -ar "$library_source/Common_test" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory_test" "$library_dest/"
|
||
|
cp -ar "$library_source/RS232" "$library_dest/"
|
||
|
cp -ar "$library_source/RS232_test" "$library_dest/"
|
||
|
elif [ "$project" == "did-inverter" ]; then
|
||
|
echo " Copy libraries: Gates, IO, Sequential, Common, Cordic"
|
||
|
cp -ar "$library_source/Gates" "$library_dest/"
|
||
|
cp -ar "$library_source/IO" "$library_dest/"
|
||
|
cp -ar "$library_source/Sequential" "$library_dest/"
|
||
|
cp -ar "$library_source/Operators" "$library_dest/"
|
||
|
cp -ar "$library_source/Common" "$library_dest/"
|
||
|
cp -ar "$library_source/Common_test" "$library_dest/"
|
||
|
cp -ar "$library_source/Cordic" "$library_dest/"
|
||
|
cp -ar "$library_source/Cordic_test" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
elif [ "$project" == "eln_support" ]; then
|
||
|
echo "Nothing todo, no Libararies needed"
|
||
|
elif [ "$project" == "did-display" ]; then
|
||
|
echo " Copy libraries: Gates, IO, Sequential, Common, Lcd, Memory, RS232"
|
||
|
cp -ar "$library_source/Gates" "$library_dest/"
|
||
|
cp -ar "$library_source/IO" "$library_dest/"
|
||
|
cp -ar "$library_source/Sequential" "$library_dest/"
|
||
|
cp -ar "$library_source/Common" "$library_dest/"
|
||
|
cp -ar "$library_source/Common_test" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
cp -ar "$library_source/Lcd" "$library_dest/"
|
||
|
cp -ar "$library_source/Lcd_test" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory_test" "$library_dest/"
|
||
|
elif [ "$project" == "eptm_radio" ]; then
|
||
|
echo " Copy libraries: Gates, IO, Sequential, Common"
|
||
|
cp -ar "$library_source/Gates" "$library_dest/"
|
||
|
cp -ar "$library_source/IO" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
cp -ar "$library_source/Sequential" "$library_dest/"
|
||
|
cp -ar "$library_source/Common" "$library_dest/"
|
||
|
cp -ar "$library_source/Common_test" "$library_dest/"
|
||
|
elif [ "$project" == "eptm_audioamp" ]; then
|
||
|
echo " Copy libraries: AD_DA, Common, Filter"
|
||
|
cp -ar "$library_source/AD_DA" "$library_dest/"
|
||
|
cp -ar "$library_source/AD_DA_test" "$library_dest/"
|
||
|
cp -ar "$library_source/Common" "$library_dest/"
|
||
|
cp -ar "$library_source/Common_test" "$library_dest/"
|
||
|
cp -ar "$library_source/Filter" "$library_dest/"
|
||
|
cp -ar "$library_source/Filter_test" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
elif [ "$project" == "cansat" ]; then
|
||
|
echo " Copy libraries: AhbLite, AhbLiteComponents, Common, Commandline, Memory, NanoBlaze, RS232"
|
||
|
cp -ar "$library_source/AhbLite" "$library_dest/"
|
||
|
cp -ar "$library_source/AhbLite_test" "$library_dest/"
|
||
|
cp -ar "$library_source/AhbLiteComponents" "$library_dest/"
|
||
|
cp -ar "$library_source/AhbLiteComponents_test" "$library_dest/"
|
||
|
cp -ar "$library_source/Common" "$library_dest/"
|
||
|
cp -ar "$library_source/Commandline" "$library_dest/"
|
||
|
cp -ar "$library_source/Commandline_test" "$library_dest/"
|
||
|
cp -arf "$library_source/Lattice/" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory" "$library_dest/"
|
||
|
cp -ar "$library_source/Memory_test" "$library_dest/"
|
||
|
cp -ar "$library_source/NanoBlaze" "$library_dest/"
|
||
|
cp -ar "$library_source/NanoBlaze_test" "$library_dest/"
|
||
|
cp -ar "$library_source/RS232" "$library_dest/"
|
||
|
cp -ar "$library_source/RS232_test" "$library_dest/"
|
||
|
fi
|
||
|
|
||
|
# add/commit/push changes to student repo
|
||
|
echo " Git: Add => Commit => Push"
|
||
|
git add -A
|
||
|
git commit -a -m "$DATE: Automatic Library Update with ``deployLibs.bash`` :shipit:"
|
||
|
git push origin main
|
||
|
cd ..
|
||
|
|
||
|
# Delete tmp directory
|
||
|
cd ..
|
||
|
echo " Delete tmp directory"
|
||
|
rm -rf "./tmp"
|
||
|
|
||
|
#-------------------------------------------------------------------------------
|
||
|
# Exit
|
||
|
#
|
||
|
echo ""
|
||
|
echo "-- $DATE: $project updated at $repo"
|
||
|
echo "$SEPARATOR"
|
||
|
popd
|