-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
tsdb.in
118 lines (108 loc) · 3.23 KB
/
tsdb.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/usr/bin/env bash
set -e
me=`basename "$0"`
mydir=`dirname "$0"`
# Either:
# abs_srcdir and abs_builddir are set: we're running in a dev tree
# or pkgdatadir is set: we've been installed, we respect that.
abs_srcdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/.."
abs_builddir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
pkgdatadir='@pkgdatadir@'
configdir='@configdir@'
# Either we've been installed and pkgdatadir exists, or we haven't been
# installed and abs_srcdir / abs_builddir aren't empty.
test -d "$pkgdatadir" || test -n "$abs_srcdir$abs_builddir" || {
echo >&2 "$me: Uh-oh, \`$pkgdatadir' doesn't exist, is OpenTSDB properly installed?"
exit 1
}
if test -n "$pkgdatadir"; then
localdir="$pkgdatadir/bin"
for jar in "$pkgdatadir"/*.jar; do
CLASSPATH="$CLASSPATH:$jar"
done
# Add pkgdatadir itself so we can find logback.xml
CLASSPATH="$CLASSPATH:$pkgdatadir"
if test -d "$pkgdatadir/bin"; then
CLASSPATH="$CLASSPATH:$pkgdatadir/bin"
fi
if test -d "$pkgdatadir/lib"; then
for jar in "$pkgdatadir"/lib/*.jar; do
CLASSPATH="$CLASSPATH:$jar"
done
fi
if test -n "$configdir" && test -d "$configdir"; then
CLASSPATH="$CLASSPATH:$configdir"
fi
else
localdir="$abs_builddir"
# If we're running out of the build tree, it's especially important that we
# know exactly what jars we need to build the CLASSPATH. Otherwise people
# cannot easily pick up new dependencies as we might mix multiple versions
# of the same dependencies on the CLASSPATH, which is bad. Looking for a
# specific version of each jar prevents this problem.
# TODO(tsuna): Once we jarjar all the dependencies together, this will no
# longer be an issue. See issue #23.
for jar in `make -C "$abs_builddir" printdeps | sed '/third_party.*jar/!d'`; do
for dir in "$abs_builddir" "$abs_srcdir"; do
test -f "$dir/$jar" && CLASSPATH="$CLASSPATH:$dir/$jar" && continue 2
done
echo >&2 "$me: error: Couldn't find \`$jar' either under \`$abs_builddir' or \`$abs_srcdir'."
exit 2
done
# Add the src dir so we can find logback.xml
CLASSPATH="$CLASSPATH:$abs_srcdir/src"
fi
# Remove any leading colon.
CLASSPATH="${CLASSPATH#:}"
usage() {
echo >&2 "usage: $me <command> [args]"
echo 'Valid commands: fsck, import, mkmetric, query, tsd, scan, search, uid, version'
exit 1
}
case $1 in
(fsck)
MAINCLASS=Fsck
;;
(import)
MAINCLASS=TextImporter
;;
(mkmetric)
shift
set uid assign metrics "$@"
MAINCLASS=UidManager
;;
(query)
MAINCLASS=CliQuery
;;
(tsd)
MAINCLASS=TSDMain
;;
(scan)
MAINCLASS=DumpSeries
;;
(search)
MAINCLASS=Search
;;
(uid)
MAINCLASS=UidManager
;;
(version)
MAINCLASS=BuildData
;;
(*)
echo >&2 "$me: error: unknown command '$1'"
usage
;;
esac
shift
JAVA=${JAVA-'java'}
JVMARGS=${JVMARGS-'-enableassertions -enablesystemassertions'}
test -r "$localdir/tsdb.local" && . "$localdir/tsdb.local"
if [[ $CLASSPATH == *"asyncbigtable"* ]]
then
USE_BIGTABLE=1
echo "Running OpenTSDB with Bigtable support"
exec $JAVA $JVMARGS -classpath "$CLASSPATH:$HBASE_CONF" net.opentsdb.tools.$MAINCLASS "$@"
else
exec $JAVA $JVMARGS -classpath "$CLASSPATH" net.opentsdb.tools.$MAINCLASS "$@"
fi