Handle Gitea version upgrade in pretemplate script
Check for version update with script expected version versus installed version
This commit is contained in:
parent
9e541f5c9d
commit
11a467a98e
|
@ -21,76 +21,120 @@ APPNAME="gitea"
|
||||||
APPBINARY="gitea"
|
APPBINARY="gitea"
|
||||||
APPSIG="7C9E68152594688862D62AF62D9AE806EC1592E2"
|
APPSIG="7C9E68152594688862D62AF62D9AE806EC1592E2"
|
||||||
APPASC="${APPNAME}-${APPVERSION}-${OS}-${ARCH}.asc"
|
APPASC="${APPNAME}-${APPVERSION}-${OS}-${ARCH}.asc"
|
||||||
KEYSERV="pgp.mit.edu"
|
KEYSERV="hkp://p80.pool.sks-keyservers.net:80"
|
||||||
DLSERV="dl.gitea.io"
|
DLSERV="dl.gitea.io"
|
||||||
APPDIR="${WKDIR}/gitea"
|
APPDIR="${WKDIR}/gitea"
|
||||||
APPBINDIR="${APPDIR}/bin"
|
APPBINDIR="${APPDIR}/bin"
|
||||||
APPCONFDIR="/etc/${APPNAME}"
|
APPCONFDIR="/etc/${APPNAME}"
|
||||||
|
|
||||||
if [[ -d ${APPCONFDIR} ]]
|
function configure_proxy {
|
||||||
then
|
proxy=$(CreoleGet activer_proxy_client non)
|
||||||
exit 0
|
if [[ ${proxy} == "oui" ]]
|
||||||
fi
|
then
|
||||||
|
|
||||||
proxy=$(CreoleGet activer_proxy_client non)
|
|
||||||
|
|
||||||
if [[ ${proxy} == "oui" ]]
|
|
||||||
then
|
|
||||||
prAddr=$(CreoleGet proxy_client_adresse)
|
prAddr=$(CreoleGet proxy_client_adresse)
|
||||||
prPort=$(CreoleGet proxy_client_port)
|
prPort=$(CreoleGet proxy_client_port)
|
||||||
export HTTP_PROXY=http://${prAddr}:${prPort}
|
export HTTP_PROXY=http://${prAddr}:${prPort}
|
||||||
export http_proxy=http://${prAddr}:${prPort}
|
export http_proxy=http://${prAddr}:${prPort}
|
||||||
export HTTPS_PROXY=http://${prAddr}:${prPort}
|
export HTTPS_PROXY=http://${prAddr}:${prPort}
|
||||||
export https_proxy=http://${prAddr}:${prPort}
|
export https_proxy=http://${prAddr}:${prPort}
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
if [[ ! -d ${APPDIR} ]]
|
function create_app_dir {
|
||||||
then
|
|
||||||
|
if [[ ! -d ${APPDIR} ]]
|
||||||
|
then
|
||||||
mkdir -p ${APPDIR}
|
mkdir -p ${APPDIR}
|
||||||
chown ${USER}:${GROUP} ${APPDIR} -R
|
chown ${USER}:${GROUP} ${APPDIR} -R
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create app user and group
|
# Create app structure
|
||||||
groupadd ${GROUP}
|
mkdir -p ${APPDIR}/{custom,data,indexers,public,log}
|
||||||
adduser \
|
chown ${USER}:${GROUP} ${APPDIR}/{data,indexers,log}
|
||||||
|
chmod 750 ${APPDIR}/{data,indexers,log}
|
||||||
|
mkdir -p ${APPCONFDIR}
|
||||||
|
chown root:${GROUP} ${APPCONFDIR}
|
||||||
|
chmod 770 ${APPCONFDIR}
|
||||||
|
|
||||||
|
if [[ ! -d ${APPBINDIR} ]]
|
||||||
|
then
|
||||||
|
mkdir -p ${APPBINDIR}
|
||||||
|
chown ${USER}:${GROUP} ${APPBINDIR}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_user_and_group {
|
||||||
|
local existing_group=$(getent group ${GROUP})
|
||||||
|
if [ -z "${existing_group}" ]; then
|
||||||
|
groupadd ${GROUP}
|
||||||
|
fi
|
||||||
|
|
||||||
|
local existing_user=$(getent passwd ${USER})
|
||||||
|
if [ -z "${existing_user}" ]; then
|
||||||
|
adduser \
|
||||||
--shell ${USERSHELL} \
|
--shell ${USERSHELL} \
|
||||||
--gecos "${GECOS}" \
|
--gecos "${GECOS}" \
|
||||||
--ingroup ${GROUP} \
|
--ingroup ${GROUP} \
|
||||||
--disabled-password \
|
--disabled-password \
|
||||||
--home ${HOMEDIR} \
|
--home ${HOMEDIR} \
|
||||||
${USER}
|
${USER}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Create app structure
|
function download_binary {
|
||||||
mkdir -p ${APPDIR}/{custom,data,indexers,public,log}
|
local temp_bin=$(mktemp)
|
||||||
chown ${USER}:${GROUP} ${APPDIR}/{data,indexers,log}
|
|
||||||
chmod 750 ${APPDIR}/{data,indexers,log}
|
|
||||||
mkdir ${APPCONFDIR}
|
|
||||||
chown root:${GROUP} ${APPCONFDIR}
|
|
||||||
chmod 770 ${APPCONFDIR}
|
|
||||||
|
|
||||||
if [[ ! -d ${APPBINDIR} ]]
|
wget -O "${temp_bin}" https://${DLSERV}/${APPNAME}/${APPVERSION}/${APPNAME}-${APPVERSION}-${OS}-${ARCH}
|
||||||
then
|
if [[ $? -ne 0 ]]
|
||||||
mkdir -p ${APPBINDIR}
|
|
||||||
chown ${USER}:${GROUP} ${APPBINDIR}
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd $APPBINDIR
|
|
||||||
if [[ ! -f ${APPBINARY} ]]
|
|
||||||
then
|
|
||||||
wget -O ${APPBINARY} https://${DLSERV}/${APPNAME}/${APPVERSION}/${APPNAME}-${APPVERSION}-${OS}-${ARCH}
|
|
||||||
if [[ $? -eq 0 ]]
|
|
||||||
then
|
then
|
||||||
chmod +x ${APPBINARY}
|
|
||||||
else
|
|
||||||
echo "Error downloading binary for ${APPNAME}"
|
echo "Error downloading binary for ${APPNAME}"
|
||||||
return 123
|
return 123
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -f ${APPASC} ]]
|
wget -O "${temp_bin}.asc" https://${DLSERV}/${APPNAME}/${APPVERSION}/${APPASC}
|
||||||
then
|
|
||||||
wget -O ${APPASC} https://${DLSERV}/${APPNAME}/${APPVERSION}/${APPASC}
|
|
||||||
gpg --keyserver ${KEYSERV} --recv ${APPSIG}
|
gpg --keyserver ${KEYSERV} --recv ${APPSIG}
|
||||||
gpg --verify ${APPNAME}-${APPVERSION}-${OS}-${ARCH}.asc ${APPBINARY}
|
gpg --verify "${temp_bin}.asc" "${temp_bin}"
|
||||||
fi
|
|
||||||
cd -
|
if [[ $? -ne 0 ]]
|
||||||
|
then
|
||||||
|
echo "Error downloading binary for ${APPNAME}"
|
||||||
|
return 123
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd $APPBINDIR
|
||||||
|
chmod +x "${temp_bin}"
|
||||||
|
mv -f "${temp_bin}" ${APPBINARY}
|
||||||
|
cd -
|
||||||
|
}
|
||||||
|
|
||||||
|
function current_gitea_version {
|
||||||
|
if [[ ! -f "${APPBINDIR}/${APPBINARY}" ]]
|
||||||
|
then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
"${APPBINDIR}/${APPBINARY}" --version | cut -d' ' -f 3
|
||||||
|
}
|
||||||
|
|
||||||
|
function main {
|
||||||
|
|
||||||
|
# Check that installed version if ok
|
||||||
|
local current_version=$(current_gitea_version)
|
||||||
|
if [ "$current_version" == "$APPVERSION" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$current_version" ]
|
||||||
|
then
|
||||||
|
echo "Installing Gitea ${APPVERSION}..."
|
||||||
|
else
|
||||||
|
echo "Upgrade Gitea from ${current_version} to ${APPVERSION}..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
configure_proxy
|
||||||
|
create_user_and_group
|
||||||
|
create_app_dir
|
||||||
|
download_binary
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
Loading…
Reference in New Issue