Skip to content
Snippets Groups Projects
run.sh 2.16 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jonas Leder's avatar
    Jonas Leder committed
    #!/bin/bash
    
    if [[ "x${FESS_DICTIONARY_PATH}" != "x" ]] ; then
      sed -i -e "s|^FESS_DICTIONARY_PATH=.*|FESS_DICTIONARY_PATH=${FESS_DICTIONARY_PATH}|" /etc/default/fess
    fi
    
    if [[ "x${ES_HTTP_URL}" = "x" ]] ; then
      ES_HTTP_URL=http://localhost:9200
    else
      sed -i -e "s|^ES_HTTP_URL=.*|ES_HTTP_URL=${ES_HTTP_URL}|" /etc/default/fess
    fi
    
    if [[ "x${ES_TYPE}" != "x" ]] ; then
      FESS_JAVA_OPTS="${FESS_JAVA_OPTS} -Dfess.config.elasticsearch.type=${ES_TYPE}"
    fi
    
    if [[ "x${ES_USERNAME}" != "x" ]] ; then
      FESS_JAVA_OPTS="${FESS_JAVA_OPTS} -Dfess.config.elasticsearch.username=${ES_USERNAME}"
    fi
    
    if [[ "x${ES_PASSWORD}" != "x" ]] ; then
      FESS_JAVA_OPTS="${FESS_JAVA_OPTS} -Dfess.config.elasticsearch.password=${ES_PASSWORD}"
    fi
    
    if [[ "x${FESS_JAVA_OPTS}" != "x" ]] ; then
      echo "FESS_JAVA_OPTS=\"${FESS_JAVA_OPTS}\"" >> /etc/default/fess
    fi
    
    if [[ "x${PING_RETRIES}" = "x" ]] ; then
      PING_RETRIES=3
    fi
    
    if [[ "x${PING_INTERVAL}" = "x" ]] ; then
      PING_INTERVAL=60
    fi
    
    start_fess() {
      ln -s /opt/java/openjdk/bin/java /usr/bin/java
      touch /var/log/fess/fess-crawler.log \
            /var/log/fess/fess-suggest.log \
            /var/log/fess/fess-thumbnail.log \
            /var/log/fess/fess-urls.log \
            /var/log/fess/audit.log \
            /var/log/fess/fess.log
      chown fess:fess /var/log/fess/fess-crawler.log \
                      /var/log/fess/fess-suggest.log \
                      /var/log/fess/fess-thumbnail.log \
                      /var/log/fess/fess-urls.log \
                      /var/log/fess/audit.log \
                      /var/log/fess/fess.log
      tail -f /var/log/fess/*.log &
      /etc/init.d/fess start
    }
    
    wait_app() {
      if [[ "x${FESS_CONTEXT_PATH}" = "x" ]] ; then
        ping_path=/json/ping
      else
        ping_path=${FESS_CONTEXT_PATH}/json/ping
      fi
      while true ; do
        status=$(curl -w '%{http_code}\n' -s -o /dev/null "http://localhost:8080${ping_path}")
        if [[ x"${status}" = x200 ]] ; then
          error_count=0
        else
          error_count=$((error_count + 1))
        fi
        if [[ ${error_count} -ge ${PING_RETRIES} ]] ; then
          echo "Fess is not available."
          exit 1
        fi
        sleep ${PING_INTERVAL}
      done
    }
    
    start_fess
    
    if [[ "x${RUN_SHELL}" = "xtrue" ]] ; then
      /bin/bash
    else
      wait_app
    fi