myshellconfig/bin/publishpvp
2020-10-19 21:59:01 +02:00

78 lines
2.9 KiB
Bash
Executable file
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
file="$(find ${HOME}/.local/$(basename $0)/ -name $1)"
case $1 in
*cnf*|*conf*)
[ -z "${file-x}" ] && file="${HOME}/.local/$(basename $0)/confluence"
libdir=/opt/atlassian/confluence/confluence/WEB-INF/lib
app=confluence
appuser=confluence
;;
*jra*|*jira*)
[ -z "${file-x}" ] && file="${HOME}/.local/$(basename $0)/jira"
libdir=/opt/atlassian/jira/atlassian-jira/WEB-INF/lib
app=jira
appuser=jira
;;
*)
echo "host ${1} not found -> exit"
exit
;;
esac
echo "Using configfile $file"
runtime=$(date "+%x-%X")
UNINSTALLDIR="${HOME}/UNINSTALL/${runtime}/"
if stat "${file}" >/dev/null 2>/dev/null ; then
echo "Stop $app on ${1}"
ssh ${1} systemctl stop ${app}.service
cat ${file}|sort -r |while read cmd pkg version ; do
case $cmd in
install)
echo install $cmd $pkg $version
if [ -z "${version}" ]; then
package=$(find ~/.m2 -name "*${pkg}*.jar"|sort -t"." -k 1,1 -k 2,2 -k 3,3|tail -n1)
else
package=$(find ~/.m2 -name "*${pkg}-${version}.jar")
fi
if [ -n "${package-x}" ]; then
scp ${package} ${1}:${libdir}
ssh ${1} chown $appuser:${appusergrp-root} "${libdir}/$(basename ${package})" </dev/null
ssh ${1} chmod ${fileperm-0755} "${libdir}/$(basename ${package})" </dev/null
else
echo "$pkg in version $version not found"
fi
;;
remove)
if [ -n "${pkg}" ]; then
if [ -n "${version}" ]; then
echo remove $pkg in version ${version} from ${1}
ssh -T ${1} /bin/bash <<EOF
mkdir -p "${UNINSTALLDIR}" </dev/null
[ \$(find ${libdir} -name "*${pkg}-${version}.jar" </dev/null |wc -l) -gt 0 ] && \
mv \$(find ${libdir} -name "*${pkg}-${version}.jar") "${UNINSTALLDIR}". </dev/null
EOF
else
echo remove $pkg in all versions from ${1}
ssh -T ${1} /bin/bash <<EOF
mkdir -p "${UNINSTALLDIR}" </dev/null
[ \$(find ${libdir} -name "*${pkg}-*.jar" </dev/null |wc -l) -gt 0 ] && \
mv \$(find ${libdir} -name "*${pkg}-*.jar") "${UNINSTALLDIR}"/. </dev/null
EOF
fi
else
echo pkg not set ignore line »${cmd} ${pkg} ${version}« from configfile
fi
;;
*)
echo "line not correct: $cmd $pkg $version"
;;
esac
unset cmd pkg version
done
echo "Start $app on ${1}"
ssh ${1} systemctl start ${app}.service </dev/null
else
echo "Configfile ${file} not found"
fi