Skip to content

Commit

Permalink
update dependencies
Browse files Browse the repository at this point in the history
Signed-off-by: Daisuke Sato <daisukes@cmu.edu>
  • Loading branch information
daisukes committed Feb 5, 2025
1 parent 2248a48 commit 7d24aae
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 49 deletions.
11 changes: 11 additions & 0 deletions dependency-override.repos
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#
# this file is used by -o option of setup-dependency.repos (alternative option of deprecated -s option)
# it is intended to use only for multi-repos dependency updates
# developer can commit this file, but it may cause conflict during merge
#

repositories:
cabot-common:
type: git
url: https://github.com/CMU-cabot/cabot-common
version: daisukes/separate-common-and-base
117 changes: 68 additions & 49 deletions setup-dependency.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,38 +26,60 @@ function blue {
echo -en "\033[0m" ## reset color
}


function help {
echo "Usage: $0 <option>"
echo "Usage: $0 <option>"
echo ""
echo "-h show this help"
echo "-c clean (rm -rf) dependency repositories"
echo "-n <count> max count for recursive check (default=2)"
echo "-n <count> max count for recursive check (default=3)"
echo "-r update depedency-release.repos"
echo "-s <sed cmd> apply sed to dependency.repos file with the command"
echo "-d use dependency.repos and dependency-dev.repos not dependency-release.repos"
echo "-o use dependency-override.repos"
echo "-s **DEPRECATED** use -o option instead"
echo ""
echo "# dependency.repos # refer sub repos by mainly branches, cyclic"
echo "# dependency-override.repos # override dependency.repos for dev branches (you can commit)"
echo "# dependency-release.repose # freezed one, including all sub-sub repos, non-cyclic"
echo ""
echo "example"
echo "$0 # most common"
echo "$0 -d # for development"
echo ""
echo "edit dependency-override.repos # override reuqired repos branches"
echo "$0 -d -o # use dependency.repos overwritten by dependency-override.repos"
}

clean=0
count=3
release=0
sed_cmd=
development=0
override=0

while getopts "hcn:rs:" arg; do
while getopts "hcdn:or" arg; do
case $arg in
h)
help
exit
h)
help
exit
;;
c)
clean=1
;;
d)
development=1
;;
c)
clean=1
n)
count=$OPTARG
;;
o)
override=1
;;
n)
count=$OPTARG
;;
r)
release=1
;;
s)
sed_cmd=$OPTARG
r)
release=1
;;
*)
help
exit
;;
esac
done
Expand All @@ -72,23 +94,23 @@ fi


if [[ $clean -eq 1 ]]; then
pwd=$(pwd)
pwd=$(pwd)
find * -name ".git" | while read -r line; do
pushd $line/../
if git diff --quiet && ! git ls-files --others --exclude-standard | grep -q .; then
echo "rm -rf $pwd/$(dirname $line)"
#rm -rf $pwd/$(dirname $line)
else
blue "There are unstaged/untracked changes in $line"
fi
popd
pushd $line/../
if git diff --quiet && ! git ls-files --others --exclude-standard | grep -q .; then
echo "rm -rf $pwd/$(dirname $line)"
sudo rm -rf $pwd/$(dirname $line)
else
blue "There are unstaged/untracked changes in $line"
fi
popd
done
exit
fi


## for release
if [[ -e dependency-release.repos ]]; then
if [[ -e dependency-release.repos ]] && [[ $development -eq 0 ]]; then
echo "setup dependency from release"
vcs import < dependency-release.repos
exit
Expand All @@ -100,32 +122,29 @@ declare -A visited

for (( i=1; i<=count; i++ ))
do
files=$(find . -name "dependency.repos")
files=$(find . -name "dependency.repos" | awk '{print length, $0}' | sort -n | cut -d' ' -f2-)

flag=0
for line in ${files[@]}; do
if [[ -z ${visited[$line]} ]]; then
flag=1
visited[$line]=1

temp_file=$(mktemp)
echo "Temporary file created: $temp_file"
cat $line > $temp_file
if [[ ! -z $sed_cmd ]]; then
com="sed -i '$sed_cmd' $temp_file"
echo $com
eval $com
if [[ $? -ne 0 ]]; then
exit 1
fi
if [[ -z ${visited[$line]} ]]; then
flag=1
visited[$line]=1

temp_file=$(mktemp)
echo "Temporary file created: $temp_file"
if [[ $override -eq 1 ]]; then
cat $line > $temp_file
cat ${line/.repos/-override.repos} | sed s/repositories:// >> $temp_file
else
cat $line > $temp_file
fi
blue "$(dirname $line)/ vcs import < $temp_file"
pushd $(dirname $line)
vcs import < $temp_file
popd
fi
blue "$(dirname $line)/ vcs import < $temp_file"
pushd $(dirname $line)
vcs import < $temp_file
popd
fi
done
if [[ $flag -eq 0 ]]; then
break
break
fi
done

0 comments on commit 7d24aae

Please sign in to comment.