#!/bin/sh

daemonCmd() {
  if test -e /etc/init/rstudio-server.conf
  then
     eval "initctl $1 rstudio-server"
  else
     eval "/etc/init.d/rstudio-server $1"
  fi
  return $?
}

testConfig() {
 `/usr/lib/rstudio-server/bin/rserver --test-config`
}

verifyInstallation() {
 `/usr/lib/rstudio-server/bin/rserver --verify-installation=1 --server-daemonize=0`
}


case "$1" in
    start)
        testConfig || return $?
        daemonCmd "start"
        ;;

    stop)
        daemonCmd "stop"
        ;;

    restart)
        testConfig || return $?
        daemonCmd "restart"
        ;;

    test-config)
        testConfig
        ;;

    verify-installation)
        daemonCmd "stop" 2>/dev/null
        verifyInstallation
        daemonCmd "start"
        ;;

    suspend-session)
        if test -n $2
        then
           kill -s USR1 $3 $4 $5 $6 $7 $8 $9 $2
        else
           echo "Must specify PID of session to suspend"
           exit 1
        fi
        ;;

    suspend-all)
        killall -s USR1 $2 $3 $4 $5 $6 $7 $8 $9 rsession
        ;;

    force-suspend-session)
        if test -n $2
        then
           kill -s USR2 $3 $4 $5 $6 $7 $8 $9 $2
        else
           echo "Must specify PID of session to force suspend"
           exit 1
        fi
        ;;

    force-suspend-all)
        killall -s USR2 $2 $3 $4 $5 $6 $7 $8 $9  rsession
        ;;

    offline)
        mkdir -p /var/lib/rstudio-server
        touch /var/lib/rstudio-server/offline
        daemonCmd "restart"
        ;;

    online)
        mkdir -p /var/lib/rstudio-server
        rm -f /var/lib/rstudio-server/offline
        daemonCmd "restart"
        ;;

    active-sessions)
        ps opid,cputime,args -C "rsession"
        ;;

    version)
        echo "99.9.9"
        ;;

    *)
        echo $"Usage: rstudio-server {start|stop|restart|test-config|verify-installation|suspend-session|suspend-all|force-suspend-session|force-suspend-all|offline|online|active-sessions|version}"
        exit 2
esac



