31 lines
1.1 KiB
Bash
31 lines
1.1 KiB
Bash
#!/bin/zsh
|
|
|
|
# set -x
|
|
set -e
|
|
|
|
dir=~/.abra/recipes
|
|
for r in `ls $dir`; do
|
|
cd "$dir/$r"
|
|
# check if recipe has SSLForceHost label
|
|
# skip if it's a commented line
|
|
# skip .swp binary file (found in radicale and I don't know what is it for)
|
|
if res=$(grep -r "SSLForceHost" . 2>/dev/null \
|
|
| grep -v "#-" | grep -v "# -" \
|
|
| grep -v ".swp"); then
|
|
branch=$(git branch --format '%(refname:short)' --list main master | head -n 1)
|
|
current_dir="${PWD##*/}"
|
|
git checkout $branch
|
|
git pull --rebase
|
|
yes | git branch -D forceSsl
|
|
git checkout -b forceSsl
|
|
for file in `echo $res | cut -d ":" -f 1`; do
|
|
# I use macos and BSD versions of tools like sed look weird :(
|
|
sed -i '' -e "s/headers.SSLForceHost=true/redirectscheme.scheme=https/" $file
|
|
sed -i '' -e "s/headers.SSLHost=.*/redirectscheme.permanent=true\"/" $file
|
|
done
|
|
git add $file
|
|
git commit -m "[mass update] fix supporting multiple domains while enforcing ssl"
|
|
git push --set-upstream origin forceSsl
|
|
echo "https://git.coopcloud.tech/coop-cloud/$current_dir/pulls/new/forceSsl"
|
|
fi
|
|
done |