diff options
author | Ning Sun | 2021-10-16 22:35:55 +0800 |
---|---|---|
committer | Ning Sun | 2021-10-16 22:35:55 +0800 |
commit | 625a413d3c84aecf9762d598d3d86e621b87b659 (patch) | |
tree | 5e64447655dd36df6ff5425e03ea1a7507767eae | |
download | aur-625a413d3c84aecf9762d598d3d86e621b87b659.tar.gz |
initial release
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | PKGBUILD | 33 | ||||
-rw-r--r-- | questdb-tmpfile.conf | 2 | ||||
-rw-r--r-- | questdb.install | 3 | ||||
-rw-r--r-- | questdb.service | 13 | ||||
-rwxr-xr-x | questdb.sh | 271 | ||||
-rw-r--r-- | questdb.sysusers | 1 |
8 files changed, 349 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..e1afea0e7d59 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,22 @@ +pkgbase = questdb + pkgdesc = Fast timeseries database + pkgver = 6.0.8 + pkgrel = 0 + url = https://questdb.io + install = questdb.install + arch = any + license = APACHE + depends = java-runtime=11 + depends = bash + source = https://github.com/questdb/questdb/releases/download/6.0.8/questdb-6.0.8-no-jre-bin.tar.gz + source = questdb.sh + source = questdb.sysusers + source = questdb-tmpfile.conf + source = questdb.service + sha1sums = SKIP + sha1sums = SKIP + sha1sums = SKIP + sha1sums = SKIP + sha1sums = SKIP + +pkgname = questdb diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..ba5927706a6b --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.tar* +pkg +src +*.jar* diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..ba2a1758e406 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: Ning Sun <n@sunng.info> + +pkgname=questdb +pkgver=6.0.8 +pkgrel=1 +pkgdesc='Fast timeseries database' +arch=('any') +url='https://questdb.io' +license=('APACHE') +depends=('java-runtime=11' 'bash') +install='questdb.install' +source=(https://github.com/questdb/questdb/releases/download/${pkgver}/questdb-${pkgver}-no-jre-bin.tar.gz + 'questdb.sh' + 'questdb.sysusers' + 'questdb-tmpfile.conf' + 'questdb.service') +sha1sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP') + +package() { + mkdir -p ${pkgdir}/{usr/bin,usr/share/java/questdb,etc/questdb,var/lib/questdb} + + tar xf questdb-${pkgver}-no-jre-bin.tar.gz + cp questdb-${pkgver}-no-jre-bin/questdb.jar ${pkgdir}/usr/share/java/questdb/questdb.jar + + install -Dm755 questdb.sh ${pkgdir}/usr/bin/questdb + install -Dm644 ${srcdir}/questdb.service ${pkgdir}/usr/lib/systemd/system/questdb.service + install -Dm644 ${srcdir}/questdb.sysusers ${pkgdir}/usr/lib/sysusers.d/questdb.conf + install -Dm644 ${srcdir}/questdb-tmpfile.conf ${pkgdir}/usr/lib/tmpfiles.d/questdb.conf +} diff --git a/questdb-tmpfile.conf b/questdb-tmpfile.conf new file mode 100644 index 000000000000..cb520cc8d23c --- /dev/null +++ b/questdb-tmpfile.conf @@ -0,0 +1,2 @@ +d /var/lib/questdb 0755 questdb questdb - +d /var/log/questdb 0755 questdb questdb - diff --git a/questdb.install b/questdb.install new file mode 100644 index 000000000000..dfe833beaa3c --- /dev/null +++ b/questdb.install @@ -0,0 +1,3 @@ +post_install() { + systemd-sysusers questdb.conf +} diff --git a/questdb.service b/questdb.service new file mode 100644 index 000000000000..c62e85c68746 --- /dev/null +++ b/questdb.service @@ -0,0 +1,13 @@ +[Unit] +Description=Questdb fast timeseries database +Documentation=https://questdb.io/ +After=network.target + +[Service] +Type=forking +User=questdb +ExecStart=/usr/bin/questdb start +ExecStop=/usr/bin/questdb stop + +[Install] +WantedBy=multi-user.target diff --git a/questdb.sh b/questdb.sh new file mode 100755 index 000000000000..796e284018c8 --- /dev/null +++ b/questdb.sh @@ -0,0 +1,271 @@ +#!/usr/bin/env bash + +################################################################################ +# ___ _ ____ ____ +# / _ \ _ _ ___ ___| |_| _ \| __ ) +# | | | | | | |/ _ \/ __| __| | | | _ \ +# | |_| | |_| | __/\__ \ |_| |_| | |_) | +# \__\_\\__,_|\___||___/\__|____/|____/ +# +# Copyright (c) 2014-2019 Appsicle +# Copyright (c) 2019-2020 QuestDB +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +export QDB_PROCESS_LABEL="QuestDB-Runtime-66535" +export QDB_MAX_STOP_ATTEMPTS=5; +export QDB_OS=`uname` + +case `uname` in + Darwin|FreeBSD) + export PS_CMD="ps aux" + export QDB_DEFAULT_ROOT="/usr/local/var/questdb" + ;; + *) + export PS_CMD="ps -ef" + export QDB_DEFAULT_ROOT="/var/lib/questdb" + ;; +esac + +if [ -f "/etc/questdb/questdb.env" ]; then + source "/etc/questdb/questdb.env" +fi + +function read_link { + f=$(readlink $1) + if [ "$f" != "" ]; then + + if [[ "$f" != /* ]]; then + f="$(dirname $1)/$f" + f="$(cd $(dirname ${f}); pwd)/$(basename ${f})" + fi + + n=$(read_link ${f}) + if [ "$n" != "" ]; then + f=${n}; + fi + fi + echo "$f" +} + +function usage { + echo "Usage: $0 start|status|stop [-f] [-d path] [-t tag]" + echo + exit 55 +} + +function export_pid { + export QDB_PID=`${PS_CMD} | grep ${QDB_PROCESS_LABEL} | grep -v grep | tr -s " " | cut -d " " -f 2` +} + +function export_java { + + # check if this is our runtime + if [ -f "$BASE/java" ]; then + export QDB_PACKAGE=withjre + export JAVA="$BASE/java" + else + export QDB_PACKAGE=withoutjre + if [ "$JAVA_HOME" = "" -a -e /usr/libexec/java_home ]; then + JAVA_HOME=$(/usr/libexec/java_home -v 11) + fi + + # check that JAVA_HOME is defined + if [ "$JAVA_HOME" = "" ]; then + JAVA_HOME=/usr/lib/jvm/default + fi + + # check that Java binary is executable + export JAVA=${JAVA_HOME}/bin/java + fi + + if [ ! -x "$JAVA" ]; then + echo "$JAVA is not executable" + exit 55; + fi + + echo "JAVA: $JAVA" +} + +function export_args { + + export QDB_OVERWRITE_PUBLIC="" + export QDB_DISABLE_HUP_HANDLER="" + export QDB_CONTAINER_MODE="" + export QDB_ROOT=${QDB_DEFAULT_ROOT} + + while [[ $# -gt 0 ]]; do + key="$1" + + case ${key} in + -f) + export QDB_OVERWRITE_PUBLIC="-f" + ;; + -n) + export QDB_DISABLE_HUP_HANDLER="-n" + ;; + -c) + export QDB_CONTAINER_MODE="-c" + ;; + -d) + if [[ $# -eq 1 ]]; then + echo "Expected: -d <path>" + exit 55 + fi + export QDB_ROOT="$2" + shift + ;; + -t) + if [[ $# -eq 1 ]]; then + echo "Expected: -t <tag>" + exit 55 + fi + export QDB_PROCESS_LABEL="QuestDB-Runtime-$2" + shift + ;; + *) + echo "Unexpected option: $key" + usage + ;; + esac + shift + done +} + +function start { + + export_pid + + if [[ "${QDB_PID}" != "" ]]; then + echo "Already running. PID: ${QDB_PID}" + exit 55 + fi + + # LINK=$(read_link $0) + # if [ "$LINK" != "" ]; then + # BASE=$(dirname ${LINK}) + # else + # BASE=$(dirname $0) + # fi + BASE=/usr/share/java/questdb + + export_java + + # create root directory if it does not exist + if [ ! -d "$QDB_ROOT" ]; then + echo "Created QuestDB ROOT directory: $QDB_ROOT" + mkdir -p ${QDB_ROOT} + fi + + QDB_LOG=/var/log/questdb/ + + JAVA_LIB="$BASE/questdb.jar" + + JAVA_OPTS=" + -D$QDB_PROCESS_LABEL + -ea -Dnoebug + -XX:+UnlockExperimentalVMOptions + -XX:+AlwaysPreTouch + " + + JAVA_MAIN="io.questdb/io.questdb.ServerMain" + DATE=`date +%Y-%m-%dT%H-%M-%S` + + if [ "${QDB_CONTAINER_MODE}" != "" ]; then + ${JAVA} ${JAVA_OPTS} -p ${JAVA_LIB} -m ${JAVA_MAIN} -d ${QDB_ROOT} ${QDB_OVERWRITE_PUBLIC} > ${QDB_LOG}/stdout-${DATE}.txt + elif [ "${QDB_DISABLE_HUP_HANDLER}" = "" ]; then + ${JAVA} ${JAVA_OPTS} -p ${JAVA_LIB} -m ${JAVA_MAIN} -d ${QDB_ROOT} ${QDB_OVERWRITE_PUBLIC} > ${QDB_LOG}/stdout-${DATE}.txt & + sleep 0.5 + else + ${JAVA} ${JAVA_OPTS} -p ${JAVA_LIB} -m ${JAVA_MAIN} -d ${QDB_ROOT} ${QDB_OVERWRITE_PUBLIC} ${QDB_DISABLE_HUP_HANDLER} > ${QDB_LOG}/stdout-${DATE}.txt + fi +} + +function query { + export_pid + + if [[ "${QDB_PID}" = "" ]]; then + echo "Not running" + else + echo "PID: ${QDB_PID}" + fi +} + +function stop { + export_pid + if [[ "${QDB_PID}" = "" ]]; then + echo "Not running" + exit 55 + fi + + OUR_PID=${QDB_PID} + + count=${QDB_MAX_STOP_ATTEMPTS} + while [ "${QDB_PID}" != "" ] && [ ${count} -gt 0 ]; do + kill ${QDB_PID} + sleep 0.5 + export_pid + count=$((count-1)) + done + + if [[ "${QDB_PID}" != "" ]]; then + kill -9 ${QDB_PID} + echo "Something is wrong. Process does not stop. Killing.." + export_pid + fi + + if [[ "${QDB_PID}" != "" ]]; then + echo "Cannot stop ${QDB_PID}. Check permissions." + else + echo "Stopped ${OUR_PID}" + fi +} + +function banner { + echo '' + echo ' ___ _ ____ ____' + echo ' / _ \ _ _ ___ ___| |_| _ \| __ )' + echo '| | | | | | |/ _ \/ __| __| | | | _ \' + echo '| |_| | |_| | __/\__ \ |_| |_| | |_) |' + echo ' \__\_\\__,_|\___||___/\__|____/|____/' + echo ' www.questdb.io' + echo +} + +banner + +if [[ $# -gt 0 ]]; then + command=$1 + shift + + export_args $@ + + case ${command} in + start) + start + ;; + status) + query + ;; + stop) + stop + ;; + *) + usage + ;; + esac +else + usage +fi diff --git a/questdb.sysusers b/questdb.sysusers new file mode 100644 index 000000000000..d95b4231de1d --- /dev/null +++ b/questdb.sysusers @@ -0,0 +1 @@ +u questdb |