File x2gopgwrapper_local of Package x2go

#!/bin/su postgres  
cd ~
#use only with sudo !!

UNAME=$SUDO_USER

case "$1" in

getdisplays)
  echo "select '|'||display||'|' from sessions;"|psql -t x2go_sessions
  ;;

getports)
  echo "select '|'||port||'|' from used_ports;"|psql -t x2go_sessions
  ;;

getservers)
  echo "select server,count(*) from sessions where status != 'F' group by server;"|psql -t x2go_sessions
  ;;

listsessions)
  echo "select agent_pid, session_id, display, server, status,\
   to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
   sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
   to_char(now()-init_time,'SSSS'),fs_port from  sessions  \
   where status !='F' and server='$2' and uname='$UNAME' order by status desc;"|psql -t x2go_sessions
  ;;

listsessions_all)
  echo "select agent_pid, session_id, display, server, status,\
   to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
   sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
   to_char(now()-init_time,'SSSS'),fs_port  from  sessions  \
   where status !='F' and uname='$UNAME' order by status desc;"|psql -t x2go_sessions
  ;;

listsessionsroot)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  echo "select agent_pid, session_id, display, server, status,\
   to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
   sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
   to_char(now()-init_time,'SSSS'),fs_port  from  sessions  \
   where server='$2'  order by status desc;"|psql -t x2go_sessions
  ;;

listsessionsroot_all)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  echo "select agent_pid, session_id, display, server, status,\
   to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
   sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
   to_char(now()-init_time,'SSSS'),fs_port  from  sessions  \
   order by status desc;"|psql -t x2go_sessions
  ;;

listsusp)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  echo "select session_id, display, uname, server,extract( day from now()-last_time)*24*60+extract(hour from now()-last_time)*60+extract(minute from now()-last_time)\
   from sessions where server='$2' and status='S';"|psql -t x2go_sessions
  ;;

listallrunning)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  echo "select agent_pid, session_id, display, server, status,\
   to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
   sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
   to_char(now()-init_time,'SSSS'),fs_port  from  sessions  \
   where status='R';"|psql -t x2go_sessions
  ;;

listmails)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  echo "select user_messages.mess_id,sessions.session_id,\
      sessions.uname,sessions.display from sessions,user_messages,\
      messages where sessions.uname=user_messages.uname and sessions.status!='F'\
      and messages.mess_id=user_messages.mess_id and sessions.server='$2';"|psql -t x2go_sessions
  ;;

getmail)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  echo "select message from messages where mess_id='$2';"|psql -t x2go_sessions
  ;;

rmmail)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  echo "delete from user_messages where mess_id='$2' and uname='$3';"|psql -t x2go_sessions
  ;;

rmsessionsroot)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  echo "delete from  sessions  \
   where session_id='$2';"|psql -t x2go_sessions
  ;;

getagent)
  echo "select agent_pid from sessions  where session_id = '$2';"|psql -t x2go_sessions
  ;;

getdisplay)
  echo "select display from sessions  where session_id = '$2';"|psql -t x2go_sessions
  ;;

changestatus)
  echo "update sessions set last_time=now(),status='$2' where session_id = '$3' and uname='$UNAME';"|psql -t x2go_sessions
  ;;

resume)
  echo "update sessions set last_time=now(),status='R',client='$2' where session_id = '$3' and uname='$UNAME';"|psql -t x2go_sessions
  ;;

insertsession)
  echo "insert into sessions (display,server,uname,session_id) values \
  ('$2','$3','$UNAME','$4');"|psql x2go_sessions
  ;;

createsession)
  echo "update sessions set status='R',last_time=now(),cookie='$2',agent_pid='$3',\
   client='$4',gr_port='$5',sound_port='$6',fs_port='$7' where session_id='$8' and uname='$UNAME';"|psql x2go_sessions
  ;;

insertport)
  echo "insert into used_ports (server,session_id,port) values \
  ('$2','$3','$4');"|psql x2go_sessions
  ;;

insertmount)
  echo "insert into mounts (session_id,path,client) values \
  ('$2','$3','$4');"|psql x2go_sessions
  ;;

deletemount)
  echo "delete from mounts where session_id='$2' and path='$3';"|psql x2go_sessions
  ;;

getmounts)
  echo "select client,path from mounts where session_id = '$2';"|psql -t x2go_sessions
  ;;

*)
  echo "$1: wrong argument"
  ;;

esac

openSUSE Build Service is sponsored by