Contents of /mcore-src/trunk/mcore-tools/src/modules/citrix/storefront-session.in
Parent Directory | Revision Log
Revision 2383 -
(show annotations)
(download)
Wed Aug 26 12:01:50 2015 UTC (9 years, 1 month ago) by niro
File size: 2383 byte(s)
Wed Aug 26 12:01:50 2015 UTC (9 years, 1 month ago) by niro
File size: 2383 byte(s)
-revert changes
1 | #!/bin/bash |
2 | |
3 | MCORE_LIBDIR="@@MCORE_LIBDIR@@" |
4 | source @@SYSCONFDIR@@/mcore/mcore.conf |
5 | source ${MCORE_LIBDIR}/include/common.global.class |
6 | source ${MCORE_LIBDIR}/include/daemon.global.class |
7 | |
8 | STOREFRONTDIR="${MCORE_CONFIG_PATH}/citrix/storefront" |
9 | |
10 | die() { echo "ERROR: $@"; exit 1; } |
11 | |
12 | # very basic getops |
13 | for argv in $* |
14 | do |
15 | case $1 in |
16 | --add|--del|--print|--query) method="${1//--}" ;; |
17 | --name) shift; name="$1" ;; |
18 | --session) shift; session="$1" ;; |
19 | --user) shift; user="$1" ;; |
20 | --domain) shift; domain="$1" ;; |
21 | --password) shift; password="$1" ;; |
22 | esac |
23 | shift |
24 | done |
25 | |
26 | [[ -n ${method} ]] || die "No method given" |
27 | |
28 | case "${method}" in |
29 | add) |
30 | # requires name |
31 | [[ -n ${name} ]] || die "No name given" |
32 | # and session |
33 | [[ -n ${session} ]] || die "No session given" |
34 | |
35 | storefront_starter="${STOREFRONTDIR}/${name}.sh" |
36 | CONFIG="${MROOT}/${storefront_starter}" |
37 | clearconfig |
38 | |
39 | addconfig '#!/bin/bash' |
40 | addconfig "${MCORE_LIBDIR}/storefront-resolver launch '${user}' '${password}' '${domain}' '${session}'" |
41 | chmod +x "${storefront_starter}" |
42 | |
43 | if is_provided fluxbox |
44 | then |
45 | # generate fluxbox menu entry |
46 | ${MCORE_LIBDIR}/fluxbox-menuitem --add --name "${name}" --exec "${storefront_starter}" && |
47 | ${MCORE_LIBDIR}/fluxbox-rebuild-menu |
48 | fi |
49 | if is_provided idesk |
50 | then |
51 | # generate idesk desktop icon |
52 | ${MCORE_LIBDIR}/idesk-generate-icon-info -add --name "{name}" --command "${storefront_starter}" --icon default.png && |
53 | ${MCORE_LIBDIR}/idesk-generate-all-desktop-icons |
54 | fi |
55 | ;; |
56 | |
57 | del) |
58 | [[ -n ${name} ]] || die "No name given" |
59 | if [ -f ${MROOT}/${STOREFRONTDIR}/"${name}".sh ] |
60 | then |
61 | rm ${MROOT}/${STOREFRONTDIR}/"${name}".sh |
62 | if is_provided fluxbox |
63 | then |
64 | ${MCORE_LIBDIR}/fluxbox-menuitem --del --name "${name}" && |
65 | ${MCORE_LIBDIR}/fluxbox-rebuild-menu |
66 | fi |
67 | if is_provided idesk |
68 | then |
69 | ${MCORE_LIBDIR}/idesk-generate-icon-info --del --name "${name}" && |
70 | ${MCORE_LIBDIR}/idesk-generate-all-desktop-icons |
71 | fi |
72 | else |
73 | eecho "No configured session named '${name}' exists." |
74 | fi |
75 | ;; |
76 | |
77 | print) |
78 | list_files_in_directory ${MROOT}/${STOREFRONTDIR} |
79 | ;; |
80 | |
81 | query) |
82 | eval sessionlist=( $(su - "${MCORE_UNPRIV_USER}" -c "${MCORE_LIBDIR}/storefront-resolver enumerate '${user}' '${password}' '${domain}'") ) |
83 | sessioncount="${#sessionlist[*]}" |
84 | for (( i=0; i<sessioncount; i++)) |
85 | do |
86 | rvecho -n "${sessionlist[${i}]};" |
87 | done |
88 | rvecho |
89 | ;; |
90 | esac |