#!/bin/bash -e

distro=$1
dist=$2
pkgname="logstash"
pkgver="9.1.1"
platform="linux-x86_64"
tarball="$pkgname-oss-$pkgver-$platform"
pkgdir="$pkgname-$pkgver"

echo "Upgrading Logstash..."

# Delete the old archive
rm -rf "$pkgname-$pkgver"

# Extract archive
tar -xzf "$tarball.tar.gz"

# Apply our patches
./apply-patches "$pkgname-$pkgver"

# Make and install 
(
    systemctl stop logstash

    rm -rf /usr/local/nagioslogserver/logstash/{lib,vendor,spec}/*
    cp -r $pkgname-$pkgver/* /usr/local/nagioslogserver/logstash
    chown -R nagios:nagios /usr/local/nagioslogserver/logstash /var/log/logstash
    chmod -R g+w /usr/local/nagioslogserver/logstash/etc

    chmod +x /etc/init.d/logstash
    sed -i s/index_type/document_type/ /usr/local/nagioslogserver/logstash/etc/conf.d/999_outputs.conf

    if [ `command -v systemctl` ]; then
        systemctl daemon-reload
    fi
)

# Do a simple sanity check to make sure some key files exist...
for f in /usr/local/nagioslogserver/logstash/bin/logstash ; do
    if [ ! -f "$f" ]; then
        echo "ERROR: Logstash install appears to have failed - exiting.  Missing file = $f"
        exit 1
    fi
done

echo "Updating Logstash plugins..."
PLUGINS="logstash-filter-json-3.2.1.gem logstash-filter-ruby-3.1.8.gem logstash-input-eventlog-4.1.3.gem logstash-input-file-4.4.6.gem logstash-input-syslog-3.7.1.gem logstash-output-exec-3.1.4.gem logstash-output-opensearch-2.0.2-java.gem logstash-filter-geoip-6.0.3-java.gem"
for plugin in $PLUGINS; do
    /usr/local/nagioslogserver/logstash/bin/logstash-plugin install mods/plugins/$plugin
done

systemctl start logstash

# Run post-install because it does plugin upgrades only if Java version > 8
./post-install

# Things are okay
echo "Logstash upgraded OK"

