121 lines
3.0 KiB
Bash
Executable File
121 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
for GITEALOCALAPPBIN in "/opt/gitea/app/bin" "./app/bin" "../../app/bin"; do
|
|
# echo ${GITEALOCALAPPBIN}
|
|
if [ -d "${GITEALOCALAPPBIN}" ]; then
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ ! -d "${GITEALOCALAPPBIN}" ]; then
|
|
echo "Directory ${GITEALOCALAPPBIN} not found"
|
|
exit 1
|
|
fi
|
|
|
|
if [ x"$1" == x"--self-install" ]; then
|
|
ln -s "../../gitea-loader/gitea-loader.sh" "${GITEALOCALAPPBIN}/gitea-loader.sh" && {
|
|
echo "Success installed ${GITEALOCALAPPBIN}/gitea-loader.sh"
|
|
exit 0
|
|
} || {
|
|
exit 1
|
|
}
|
|
fi
|
|
|
|
jq --version > /dev/null 2>&1 || {
|
|
echo "Command jq not found"
|
|
exit 1
|
|
}
|
|
|
|
|
|
GITEALATESTVERSION="$(curl https://dl.gitea.com/gitea/version.json 2>/dev/null | jq -r .latest.version)"
|
|
|
|
#GITEALATESTVERSION="1.20"
|
|
|
|
GITEALATESTFILE="gitea-${GITEALATESTVERSION}-linux-amd64"
|
|
GITEALATESTURLXZ="https://dl.gitea.com/gitea/${GITEALATESTVERSION}/${GITEALATESTFILE}.xz"
|
|
GITEALATESTURLXZASC="https://dl.gitea.com/gitea/${GITEALATESTVERSION}/${GITEALATESTFILE}.xz.asc"
|
|
|
|
while true; do
|
|
if [ -f "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.xz" ]; then
|
|
echo "Gitea version ${GITEALATESTVERSION} exists"
|
|
exit 0
|
|
fi
|
|
|
|
# gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
|
|
|
|
# gpg --verify gitea-1.20-linux-amd64.xz.asc gitea-1.20-linux-amd64.xz && {
|
|
# echo ok
|
|
# } || {
|
|
# echo no
|
|
# }
|
|
|
|
break
|
|
done
|
|
|
|
if [ x"${GITEALATESTVERSION}" = x"" ]; then
|
|
echo "Empty GITEALATESTVERSION"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Download gitea version ${GITEALATESTVERSION}"
|
|
|
|
curl "${GITEALATESTURLXZ}" 2>/dev/null > "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.xz.part" && {
|
|
echo "Success"
|
|
mv "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.xz.part" "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.xz"
|
|
} || {
|
|
echo "Failed"
|
|
rm -vf "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.xz.part"
|
|
exit 1
|
|
}
|
|
|
|
echo "Extract gitea version ${GITEALATESTVERSION}"
|
|
|
|
xz -cd "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.xz" > "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.part" && {
|
|
echo "Success"
|
|
mv "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.part" "${GITEALOCALAPPBIN}/${GITEALATESTFILE}"
|
|
} || {
|
|
echo "Failed"
|
|
rm -vf "${GITEALOCALAPPBIN}/${GITEALATESTFILE}"
|
|
exit 1
|
|
}
|
|
|
|
chmod +x "${GITEALOCALAPPBIN}/${GITEALATESTFILE}"
|
|
|
|
|
|
curl \
|
|
-L \
|
|
-H "Accept: application/vnd.github+json" \
|
|
-H "X-GitHub-Api-Version: 2022-11-28" \
|
|
"https://api.github.com/repos/go-gitea/gitea/releases?per_page=15" \
|
|
> "gitea-releases.json" 2>/dev/null || {
|
|
exit 1
|
|
}
|
|
|
|
for x in {3..15}; do
|
|
GITEAVERSION="$(cat gitea-releases.json | jq -r ".[$x].tag_name" | grep -aoE '[0-9]+\.[0-9]+\.[0-9]+')"
|
|
|
|
GITEABIN="--"
|
|
GITEARCH="--"
|
|
|
|
GITEABINFILE="${GITEALOCALAPPBIN}/gitea-${GITEAVERSION}-linux-amd64"
|
|
GITEARCHFILE="${GITEALOCALAPPBIN}/gitea-${GITEAVERSION}-linux-amd64.xz"
|
|
|
|
if [ -f "${GITEABINFILE}" ]; then
|
|
GITEABIN="OK"
|
|
fi
|
|
|
|
if [ -f "${GITEARCHFILE}" ]; then
|
|
GITEARCH="OK"
|
|
fi
|
|
|
|
# echo ${GITEAVERSION} ${GITEABIN} ${GITEAARCH}
|
|
|
|
if [ x"${GITEABIN}" = x"OK" ]; then
|
|
echo rm "${GITEABINFILE}"
|
|
fi
|
|
|
|
if [ $x -gt 7 -a x"${GITEARCH}" = x"OK" ]; then
|
|
echo rm "${GITEARCHFILE}"
|
|
fi
|
|
done
|