Magellan Linux

Annotation of /mcore-src/trunk/mcore-tools/src/modules/citrix/storefront-resolver.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2356 - (hide annotations) (download)
Mon Aug 24 14:11:26 2015 UTC (8 years, 8 months ago) by niro
File size: 3290 byte(s)
-fixed spelling
1 niro 2352 #!/bin/bash
2    
3     CMD="$1"
4     USER="$2"
5     PASS="$3"
6     DOMAIN="$4"
7     APP="$5"
8    
9     BROWSER=""
10     : ${STOREFRONT_STORE=""}
11    
12     if [[ -z ${STOREFRONT_STORE} ]]
13     then
14     source @@SYSCONFDIR@@/mcore/citrix.conf
15     fi
16    
17     # prefer storebrowse
18     if [[ -e ${STOREBROWSE_EXECUTABLE} ]]
19     then
20     BROWSER=${STOREBROWSE_EXECUTABLE}
21 niro 2356 ADDSTORE_REQUIRED=1
22 niro 2352 # use old pnabrowse
23     elif [[ -e ${PNABROWSE_EXECUTABLE} ]]
24     then
25     BROWSER=${PNABROWSE_EXECUTABLE}
26 niro 2356 ADDSTORE_REQUIRED=0
27 niro 2352 else
28     echo "No Citrix browser found."
29     exit 1
30     fi
31    
32     USE_XMESSAGE=0
33     if [[ -x $(type -P xmessage) ]]
34     then
35     USE_XMESSAGE=1
36     fi
37    
38 niro 2353 storefront_list_store()
39     {
40     "${BROWSER}" -l | cut -d"'" -f1-3 | sed "s:'::g"
41     }
42    
43 niro 2352 storefront_add_store()
44     {
45 niro 2353 if [[ -z $("${BROWSER}" -l "${STOREFRONT_STORE}" | grep "'${STOREFRONT_STORE}'") ]]
46 niro 2352 then
47     "${BROWSER}" -a "${STOREFRONT_STORE}"
48     else
49     echo "Store '${STOREFRONT_STORE}' already added."
50     fi
51     }
52    
53     storefront_delete_store()
54     {
55 niro 2353 if [[ -n $("${BROWSER}" -l "${STOREFRONT_STORE}" | grep "'${STOREFRONT_STORE}'") ]]
56 niro 2352 then
57     "${BROWSER}" -d "${STOREFRONT_STORE}"
58     else
59     echo "Store '${STOREFRONT_STORE}' not found."
60     fi
61     }
62    
63     storefront_subscribe_app()
64     {
65     # already subscribed?
66     if [[ -z $("${BROWSER}" -S -U "${USER}" -P "${PASS}" -D "${DOMAIN}" "${STOREFRONT_STORE}" | grep "'${APP}'") ]]
67     then
68     "${BROWSER}" -s "${APP}" -U "${USER}" -P "${PASS}" -D "${DOMAIN}" "${STOREFRONT_STORE}"
69     else
70     echo "'${APP}' already subscribed.'"
71     fi
72     }
73    
74     storefront_unsubscribe_app()
75     {
76     # already subscribed?
77     if [[ -n $("${BROWSER}" -S -U "${USER}" -P "${PASS}" -D "${DOMAIN}" "${STOREFRONT_STORE}" | grep "'${APP}'") ]]
78     then
79     "${BROWSER}" -u "${APP}" -U "${USER}" -P "${PASS}" -D "${DOMAIN}" "${STOREFRONT_STORE}"
80     else
81     echo "'${APP}' not subscribed.'"
82     fi
83     }
84    
85     storefront_enumerate()
86     {
87     "${BROWSER}" -E -U "${USER}" -P "${PASS}" -D "${DOMAIN}" "${STOREFRONT_STORE}"
88     }
89    
90     storefront_launch()
91     {
92     "${BROWSER}" -L "${APP}" -U "${USER}" -P "${PASS}" -D "${DOMAIN}" "${STOREFRONT_STORE}"
93     }
94    
95     case ${CMD} in
96     enumerate)
97     # enumerate apps
98 niro 2356 if [[ ${ADDSTORE_REQUIRED} = 1 ]]
99 niro 2352 then
100     storefront_add_store
101     fi
102     storefront_enumerate
103     ;;
104    
105     launch)
106     # launch apps
107     if [[ ${USE_XMESSAGE} = 1 ]]
108     then
109     xmessage -center -title "ICA-Client" -buttons "" "
110     Starting session '${APP}' ...
111    
112     " &
113     fi
114 niro 2356 if [[ ${ADDSTORE_REQUIRED} = 1 ]]
115 niro 2352 then
116     storefront_add_store
117     storefront_subscribe_app
118     else
119     # always enumerate all apps to fill the cache or launch will not work
120     # and always enumerate if the cache is older than one day
121     if [ ! -f ~/.ICAClient/cache/Citrix/PNAgent/AppCache/appdata.xml ] ||
122     [[ ! -z $(find ~/.ICAClient/cache/Citrix/PNAgent/AppCache/appdata.xml -mtime +1) ]]
123     then
124     storefront_enumerate
125     fi
126     fi
127     if storefront_launch
128     then
129     if [[ ${USE_XMESSAGE} = 1 ]]
130     then
131     killall xmessage
132     fi
133     else
134     if [[ ${USE_XMESSAGE} = 1 ]]
135     then
136     killall xmessage
137     xmessage -center -title "ICA-Client" -buttons "
138     Abort" "Failed to start session '${APP}'.
139    
140     " &
141     else
142     echo "Failed to start session '${APP}'."
143     fi
144     fi
145     ;;
146    
147 niro 2353 liststore)
148     storefront_list_store
149     ;;
150    
151     addstore)
152     if [[ -n $2 ]]
153     then
154     STOREFRONT_STORE="$2"
155     fi
156     storefront_add_store
157     ;;
158    
159     delstore)
160     if [[ -n $2 ]]
161     then
162     STOREFRONT_STORE="$2"
163     fi
164     storefront_delete_store
165     ;;
166    
167 niro 2352 *)
168     echo "Unknown command '${CMD}'."
169     exit 1
170     ;;
171     esac