resume/deploy.firebase.sh

92 lines
2.3 KiB
Bash
Executable File

#! /bin/sh
set -o pipefail
set -e
set -u
if which vale; then
f=$(mktemp)
cat open-resume.com.d/local-storage-about-srcdoc-open-resume.json | sed 's/"[^"]*":/"."/g' > $f
vale sync
vale $f || true
fi
if tty && ! which firebase; then
f="$(mktemp)"
wget https://firebase.tools -O - > "$f"
export upgrade=true
sudo bash "$f"
fi
which firebase
outdir=$(mktemp -d)
cleanup() {
rm -rf "$outdir"
}
trap cleanup EXIT
rm -rf $outdir
mkdir -p $outdir/public
cp ./open-resume.com.d/resume.html.2 $outdir/public/index.html
cp ./open-resume.com.d/resume.pdf $outdir/public/BreeLaPointeResume.pdf
cp -r ./open-resume.com.d/fonts $outdir/public/
(
if ! which woff2_compress; then
sudo apt -y install woff2
fi
set -ueo pipefail
for f in "$outdir"/public/fonts/*.ttf; do
echo ttf to woff2 for "$f"
if [ -f "$f" ]; then
woff2_compress "$f"
rm "$f"
fi
basename_f="${f##*/}"
find "$outdir/public" -type f | grep -v public.fonts | while read -r f2; do
sed -i "s#$basename_f#${basename_f%.ttf}.woff2#g" "$f2"
done
echo asserting no $basename_f
! grep -R "$basename_f" "$outdir/public"
echo asserting ${basename_f%.ttf}.woff2
grep -R "${basename_f%.ttf}.woff2" "$outdir/public"
done
du -sh "$outdir/public/fonts/"*
)
cp -r ./firebase.json ./.firebaserc ./.firebase $outdir/
sed -i "s#deploy/public#public#" $outdir/firebase.json
cd $outdir
(
set -ueo pipefail
if [ -n "$GITLAB_PAT" ]; then
export HOME="$(mktemp -d)"
git clone https://gitlab%40breel.dev:"$GITLAB_PAT"@gitlab.com/breel/resume.git gitlab-resume.d
git config --global user.name "gitlab@breel.dev"
git config --global user.email "gitlab@breel.dev"
rm -rf ./gitlab-resume.d/*
cp -r ./public/* ./gitlab-resume.d/
cd ./gitlab-resume.d/
git add -A :/
git commit -m "$(date -u +%Y-%m-%dT%H:%M:%S)"
git push origin main
fi
) || true
(
set -ueo pipefail
echo firebase uses squeaky2x3@gmail.com
! tty || firebase login
echo firebase init
args=()
log_args=()
if ! tty; then
args+=("--token" "$FIREBASE_CI_TOKEN")
log_args+=("--token" "${FIREBASE_CI_TOKEN:0:1}")
test "${FIREBASE_CI_TOKEN:0:1}" != "$"
fi
echo firebase deploy "${log_args[@]}"
firebase deploy "${args[@]}"
)