#!/opt/thinlinc/libexec/python3
# -*-mode: python; coding: utf-8 -*-
#
# Copyright 2002-2014 Cendio AB.
# For more information, see http://www.cendio.com
if 82 - 82: Iii1i
import sys
import getopt
import os
import locale
if 87 - 87: Ii % i1i1i1111I . Oo / OooOoo * I1Ii1I1 - I1I
from thinlinc import hiveconf
if 81 - 81: i1 + ooOOO / oOo0O00 * i1iiIII111 * IiIIii11Ii
from thinlinc . sessioninfo import GPSError , get_public_sessioninfo
if 84 - 84: ooo000 - Ooo0Ooo + iI1iII1I1I1i . IIiIIiIi11I1
if 98 - 98: I11iiIi11i1I % oOO
def i1ii1 ( username , param , nofolder = 0 ) :
 ooo0O0oO00 = o00o0OO00O ( username , param )
 if isinstance ( ooo0O0oO00 , dict ) :
  if nofolder :
   sys . exit ( "%s is a folder, not a parameter (try -a)" % param )
  else :
   return ooo0O0oO00
 elif isinstance ( ooo0O0oO00 , list ) :
  return " " . join ( map ( str , ooo0O0oO00 ) )
 else :
  return ooo0O0oO00
  if 57 - 57: iiIi1 - ii % Ii * i1i1i1111I / Ii
def o00o0OO00O ( session_info , param ) :
 if param . startswith ( "/" ) :
  param = param [ 1 : ]
  if 43 - 43: I11iiIi11i1I
 if param . endswith ( "/" ) :
  param = param [ : - 1 ]
  if 31 - 31: IIiIIiIi11I1 * oOO / OooOoo
 oOooo0OOO = param . split ( "/" )
 if 53 - 53: Ii * Oo * ooo000 . i1iiIII111
 if oOooo0OOO == [ "" ] :
  return session_info
  if 14 - 14: I1I / oOO
 ooOOooO0 = session_info
 for param in oOooo0OOO :
  ooOOooO0 = ooOOooO0 . get ( param )
  if ooOOooO0 == None :
   sys . exit ( "No such parameter as %s" % param )
   if 13 - 13: oOO
 return ooOOooO0
 if 2 - 2: i1
 if 22 - 22: IIiIIiIi11I1 - ooo000 / I1Ii1I1 . ooo000
def IIII11 ( ) :
 print ( """Usage:
%(prog)s [options] <parameter>

  -a, --all-entries             Print all parameters and values in a folder
  -e, --eval VAR=parameter      Print parameter value in a format suitable
                                for assignment to a shell variable, via
                                evaluation.
  -?, --help                    Show this help message.

  Example:

  %(prog)s -a /

  %(prog)s -e LANG=/client_params/capabilities/client_lang

  %(prog)s /client_ip""" % { "prog" : sys . argv [ 0 ] } , file = sys . stderr )
 if 72 - 72: IIiIIiIi11I1 * I1I / I1I + iiIi1 . oOO * Ii
 if 96 - 96: Ii . IIiIIiIi11I1 % I11iiIi11i1I
def iiii1i1iIi ( ) :
 locale . setlocale ( locale . LC_ALL , "" )
 if 73 - 73: ii % Ii
 if len ( sys . argv ) < 2 :
  IIII11 ( )
  sys . exit ( 1 )
  if 80 - 80: Ooo0Ooo
 try :
  O00Oo , O00O = getopt . getopt ( sys . argv [ 1 : ] , "a:e:?" ,
 [ "all-entries=" , "eval=" , "help" ] )
 except getopt . GetoptError :
  IIII11 ( )
  sys . exit ( 2 )
  if 59 - 59: Iii1i . ii - iiIi1
 ii1IiIiiII = [ ]
 I1I111i11I = [ ]
 if 85 - 85: OooOoo
 for o00 , I1i1Ii in O00Oo :
  if o00 in ( "-a" , "--all-entries" ) :
   ii1IiIiiII . append ( I1i1Ii )
  if o00 in ( "-e" , "--eval" ) :
   Ooo0OO = I1i1Ii . split ( "=" , 1 )
   if not Ooo0OO [ 1 : ] :
    IIII11 ( )
    sys . exit ( 2 )
   I1I111i11I . append ( Ooo0OO )
  if o00 in ( "-?" , "--help" ) :
   IIII11 ( )
   sys . exit ( 0 )
   if 6 - 6: i1iiIII111
   if 99 - 99: ooOOO * I1Ii1I1
 Oooo0o0oO0 = hiveconf . open_hive ( "/opt/thinlinc/etc/thinlinc.hconf" )
 if 71 - 71: OooOoo - Ii
 if 40 - 40: IiIIii11Ii . i1 / Oo
 try :
  O0ooooOoo0O = get_public_sessioninfo ( Oooo0o0oO0 )
 except GPSError as oo0oOo :
  print ( str ( oo0oOo ) , "Exiting" , file = sys . stderr )
  sys . exit ( 1 )
  if 61 - 61: iI1iII1I1I1i / IiIIii11Ii
 if 0 == len ( O0ooooOoo0O ) :
  print ( "No session information matching current environment. Exiting" , file = sys . stderr )
  sys . exit ( 1 )
 elif 1 < len ( O0ooooOoo0O ) :
  print ( "Multiple sessions matching current information. Should not happen! Exiting" , file = sys . stderr )
  sys . exit ( 1 )
  if 40 - 40: Iii1i / I1I
 O0ooooOoo0O = O0ooooOoo0O [ 0 ]
 if 52 - 52: i1i1i1111I + IiIIii11Ii + I11iiIi11i1I
 if 52 - 52: i1iiIII111 % Oo . I1Ii1I1 + ooOOO % Oo . ii
 for ( OOO00oO0oOo0O , iIi1I1I ) in I1I111i11I :
  ooo0O0oO00 = i1ii1 ( O0ooooOoo0O , iIi1I1I , nofolder = 1 )
  print ( "%s=%s" % ( OOO00oO0oOo0O , ooo0O0oO00 ) )
  if 85 - 85: oOo0O00
  if 65 - 65: Ooo0Ooo * ooo000 + oOo0O00
 for iIi1I1I in O00O :
  print ( i1ii1 ( O0ooooOoo0O , iIi1I1I , nofolder = 1 ) )
  if 71 - 71: Ooo0Ooo / ooo000
  if 87 - 87: ii / oOo0O00 % oOO - oOo0O00 . I1I + Ooo0Ooo
 for OO0o0O0o0 in ii1IiIiiII :
  I111Iii1Ii = o00o0OO00O ( O0ooooOoo0O , OO0o0O0o0 )
  if not isinstance ( I111Iii1Ii , dict ) :
   print ( "%s: not a folder" % OO0o0O0o0 , file = sys . stderr )
   continue
   if 26 - 26: Ii . i1
  for iIi1I1I in I111Iii1Ii . keys ( ) :
   ooo0O0oO00 = i1ii1 ( O0ooooOoo0O , os . path . join ( OO0o0O0o0 , iIi1I1I ) )
   if isinstance ( ooo0O0oO00 , dict ) :
    print ( iIi1I1I + "/" )
   else :
    print ( "%s = %s" % ( iIi1I1I , ooo0O0oO00 ) )
    if 61 - 61: iI1iII1I1I1i . iiIi1 - ooo000 / ooo000 - i1
    if 19 - 19: Iii1i * Ooo0Ooo . I1Ii1I1 / I11iiIi11i1I * Ii - oOO
if __name__ == "__main__" :
 iiii1i1iIi ( )
# dd678faae9ac167bc83abf78e5cb2f3f0688d3a3
