pattern match VLSI upgrade script
This commit is contained in:
@@ -1,8 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# This script updates Hammer and plugins.
|
||||
# ./scripts/upgrade-vlsi.sh <pattern(s)> will upgrade plugins matching the pattern list.
|
||||
# ./scripts/upgrade-vlsi.sh will upgrade all plugins and bump hammer-vlsi to the latest released version. Only do this upon a new Hammer release.
|
||||
|
||||
# exit script if any command fails
|
||||
set -e
|
||||
set -o pipefail
|
||||
# except for grep in the pipe
|
||||
clgrep() { grep $@ || test $? = 1; }
|
||||
|
||||
# exit script if not in Chipyard conda env
|
||||
if [[ `basename $CONDA_PREFIX` != .conda-env ]]; then
|
||||
@@ -11,24 +17,31 @@ if [[ `basename $CONDA_PREFIX` != .conda-env ]]; then
|
||||
fi
|
||||
|
||||
# Get hammer submodules
|
||||
package_names=$(git ls-files --stage | grep 160000 | awk '$4 ~/vlsi\/hammer.*/ {print $4}')
|
||||
package_list=(${package_names})
|
||||
plen="${#package_list[@]}"
|
||||
|
||||
if [[ ${plen} -gt 0 ]]; then
|
||||
for p in "${package_list[@]}"; do
|
||||
cd ${p}
|
||||
echo "Updating current directory: $PWD"
|
||||
git checkout `basename "$(git rev-parse --abbrev-ref origin/HEAD)"`
|
||||
git pull
|
||||
cd - > /dev/null
|
||||
git add ${p}
|
||||
pip install -e ${p} --upgrade
|
||||
if [ $# -gt 0 ]; then
|
||||
patterns=()
|
||||
for arg in $@; do
|
||||
patterns+=("-e" $arg)
|
||||
done
|
||||
package_list=($(git ls-files --stage | grep 160000 | clgrep ${patterns[@]} | awk '$4 ~/vlsi\/hammer.*/ {print $4}'))
|
||||
else
|
||||
package_list=($(git ls-files --stage | grep 160000 | awk '$4 ~/vlsi\/hammer.*/ {print $4}'))
|
||||
# Also upgrade hammer-vlsi.
|
||||
pip install hammer-vlsi --upgrade
|
||||
fi
|
||||
|
||||
# Upgrade hammer-vlsi separately.
|
||||
pip install hammer-vlsi --upgrade
|
||||
|
||||
|
||||
# exit if requested package not found (case of an unmatched pattern in a list is not handled)
|
||||
if [ -z ${package_list} ]; then
|
||||
echo "No Hammer plugins matching these patterns found: $@"
|
||||
exit
|
||||
fi
|
||||
|
||||
# upgrade to latest commit in default branch
|
||||
for p in ${package_list[@]}; do
|
||||
echo "Updating ${p}"
|
||||
cd ${p}
|
||||
git checkout `basename "$(git rev-parse --abbrev-ref origin/HEAD)"`
|
||||
git pull
|
||||
cd - > /dev/null
|
||||
git add ${p}
|
||||
pip install -e ${p} --upgrade
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user