sysconfig/git-repo-change-hook-path.sh

41 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
echo "in [REPOROOT]/*/*/hooks/[pre-receive.d|post-receive.d|update.d]/gitea, path is hard-coded in full such as `/faronear/git/gitea/gitea hook --config=/faronear/git/gitea/custom/conf/app.ini`, you need to replace it if the path is changed."
echo "[20230305] noticed that gitea 1.18.5 default is `/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini`"
echo "#<<< Enter [old hook path string] or [leave blank] for default '/faronear/git/gitea/gitea':"
read -p "#>>> " OLDPATH
if [ ! "$OLDPATH"]
then
OLDPATH=/faronear/git/gitea/gitea
fi
echo "#<<< Enter [new hook path string] or [leave blank] for default '/usr/local/bin/gitea': "
read -p "#>>> " NEWPATH
if [ ! "$NEWPATH" ]
then
NEWPATH=/usr/local/bin/gitea
fi
echo "#<<< Enter [root path] of repositories, or [leave blank] for default [[]]`pwd`]] "
read -p "#>>> " REPOROOT
if [ "$ROOTPATH"]
then
ROOTPATH=`realpath $ROOTPATH`
else
ROOTPATH=`pwd`
fi
echo "#<<< Enter [y] to start updating, or [anything else] to quit"
read -p "#>>> " YESNO
if [ "$YESNO" != 'y' ]
then
exit
fi
# 用 : 来取代 /,以避免大量出现 \/
# sed -i "s/\/home\/fon\//\/root\//g" `grep '/home/fon' -rl git.repo/*/*/hooks/*.d/gitea`
sed -i "s:$OLDPATH:$NEWPATH:g" `grep "$OLDPATH" -rl $REPOROOT/*/*/hooks/*.d/gitea`
echo "Completed replacing $OLDPATH to $NEWPATH recursively in folder $REPOROOT"