#!/bin/bash RESTART=true set -- $(getopt -u -o n --long no-restart -- "$@" ) while [ $# -gt 0 ]; do case $1 in -n|--no-restart) RESTART=false shift continue ;; --) shift DESTS=($@) break ;; *) usage esac done for DEST in ${DESTS[*]} do file="$(find ${HOME}/.local/$(basename $0)/ -name ${DEST})" case ${DEST} 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 ${DEST} 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 ${DEST}" ssh ${DEST} systemctl stop ${app}.service cat ${file}|sort -r |grep -v " *#"|while read cmd pkg version ; do case $cmd in install) if [ -z "${version}" ]; then dir=$( find ~/.m2 -type d -name "*${pkg}*"|grep -v '\$' ) loginfo "dir: $dir" pkgdir=$(find ${dir} -maxdepth 1 -mindepth 1 -type d -exec basename '{}' \; |sort -n -t"." -k 1,1 -k 2,2 -k 3,3|tail -n1) loginfo "pkgdir: $pkgdir" loginfo "${dir}/${pkgdir}" package=$(find ${dir}/${pkgdir} -name "*${pkg}*.jar") loginfo "package: $package" else package=$(find ~/.m2 -name "*${pkg}-${version}.jar") fi if [ -n "${package-x}" ]; then loginfo "$cmd $pkg $version" logdebug "install $package" scp ${package} ${DEST}:${libdir} ssh ${DEST} chown $appuser:${appusergrp-root} "${libdir}/$(basename ${package})"