Merge changes I47ec8fcb,I2cd200f3
[gigi.git] / doc / scripts / gigi
1 #!/bin/sh
2
3 : ${GIGI_CONF_DIR:=/etc/wpia/gigi}
4
5 [ -r "$GIGI_CONF_DIR/launcher.conf" ] && . "$GIGI_CONF_DIR/launcher.conf"
6
7 # assign default values
8 : \
9     ${JDBC_DRIVER:=/usr/share/java/postgresql-jdbc4.jar} \
10     ${DNSJAVA:=/usr/share/java/dnsjava.jar} \
11     ${GIGI_EXEC:=/usr/share/java/gigi.jar} \
12     ${GIGI_DATA_DIR:=/var/lib/wpia-gigi}
13
14 die() {
15     if [ $# -ge 1 ]; then
16         printf >&2 'Could not %s.\n' "$1"
17     fi
18     exit 1
19 }
20
21 cd "$GIGI_DATA_DIR" || die 'move to data directory'
22
23 runGigiClass() {
24     class=$1
25     shift
26     if [ $# -ge 1 ]; then
27         java_opts="$1"
28         shift
29     fi
30     exec java $java_opts -cp "$JDBC_DRIVER:$DNSJAVA:$GIGI_EXEC" club.wpia.gigi.$class "$@"
31 }
32
33 command="$1"
34 shift
35 case "$command" in
36     start) runGigiClass Launcher ;;
37     debug) runGigiClass Launcher "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" ;;
38     start-daemon)
39         exec 3</etc/gigi/conf.tar || die 'open config'
40         exec 4>>/var/log/wpia-gigi.log || die 'open log'
41         runGigiClass Launcher <&3 >&4 2>&1 &
42         echo $! > /var/run/wpia-gigi.pid
43         ;;
44     signer) runGigiClass util.SimpleSigner ;;
45     reset-database) runGigiClass util.DatabaseManager ;;
46     fetch-alexa) runGigiClass util.HighFinancialValueFetcher "" "$@" ;;
47     fetch-locales) runGigiClass util.FetchLocales "" "$@" ;;
48     signer-conf)
49         mkdir -p "$GIGI_DATA_DIR/config" || die 'create config directory'
50         cd "$GIGI_DATA_DIR/config" || die 'move to config directory'
51         tar x gigi.properties
52         ;;
53     *)
54         cat >&2 << 'EOF'
55 Usage: gigi COMMAND [ARGUMENT...]
56
57 Commands:
58     start - start gigi
59     debug - start gigi in debug mode (on port 8000, with config from stdin)
60     start-daemon - start gigi in background (using config from /etc/gig/config.tar)
61     signer - start the simple signer
62     signer-conf - extract config for simple signer (and reset-database) from the tar from stdin
63     reset-database - reset the database
64     fetch-alexa - fetch domains with high financial value from Alexa top 1 million list; required argument: target file, optional argument: number of domains to save
65     fetch-locales - fetch the localisation; optional argument: URL pattern to indicate download location
66 EOF
67 esac