source: projects/vutils/trunk/kinput2ctl @ 1120

Revision 1120, 4.7 KB checked in by daisuke, 14 years ago (diff)

import vutils-2.2.4 from internal cvs repository

Line 
1#!/bin/bash
2# kinput2ctl              by Jun Nishii <jun@vinelinux.org>
3#                    Time-stamp: <2000-12-19 10:55:48 vine>
4
5CANNARPM=Canna
6WNNRPM=FreeWnn
7WNN6RPM=wnn6
8
9. /usr/share/vine/imelib
10
11##########  Messages #############################3
12ShowUsage_ja() {
13cat <<EOF
14  Usage:  ${1##/*/} {start|stop|canna|wnn}
15      start:  kinput2 を起動します
16              (XIM_PROG で定義されたデフォルトの漢字変換サーバとつなぎます)
17      stop:   kinput2 を停止します
18      canna:  kinput2 を起動し、かんなサーバと接続します
19      wnn:    kinput2 を起動し、Wnn サーバと接続します
20EOF
21}
22
23ShowUsage_C() {
24cat <<EOF
25  Usage:  ${1##/*/} {start|stop|canna|wnn}
26      start:  start kinput2 (default input method defined by XIM_PROG)
27      stop:   stop  kinput2
28      canna:  start kinput2 for canna
29      wnn:    start kinput2 for wnn
30EOF
31}
32
33UnknownMsg_ja(){
34echo "未知の漢字変換システムが設定されています(XIM_PROG): $XIM_PROG"
35}
36
37UnknownMsg_C(){
38echo "unknown XIM_PROG: $XIM_PROG"
39}
40
41KillKinput2Msg_ja(){
42echo "現在走っている kinput2 を停止します."
43}
44
45KillKinput2Msg_C(){
46echo "kill currently runnning kinput2."
47}
48
49RunMsg_ja(){
50echo "kinput2 を起動し、$1 サーバと接続します..."
51}
52
53RunMsg_C(){
54echo "run kinput2 for $1..."
55}
56
57NoWnnenvrcMsg_ja(){
58echo "wnnenvrc が見付かりません!"
59echo "設定を終了します..."
60}
61
62NoWnnenvrcMsg_C(){
63echo "Not Found wnnenvrc!"
64echo "exit setup..."
65}
66
67########## end of Messages #############################3
68
69CheckOption() {
70if [ $# != 1 ] ; then
71    eval ShowUsage_$LOCALE ${0##*/}
72    return -1
73fi
74return 0
75}
76
77UnknownExit(){
78eval UnknownMsg_$LOCALE
79exit -1
80}
81
82StopKinput2(){
83isKinput2Alive || return -1
84eval KillKinput2Msg_$LOCALE
85killmyproc kinput2
86return 0
87}
88
89isKinput2Alive(){
90pid=`pidofproc kinput2`
91if [ -n "$pid" ] ; then
92    return 0
93fi
94return -1
95}
96
97Kinput2Canna(){
98isCannaAlive || exit -1
99
100eval RunMsg_$LOCALE $TARGET
101kinput2 -canna ${CANNA_SERVER:+-cannaserver $CANNA_SERVER} &
102return 0
103}
104
105Kinput2Wnn8(){
106isWnnAlive || exit -1
107
108if [ -f $HOME/.Wnn8/wnnenvrc ] ; then
109    WNNENVRC=$HOME/.Wnn8/wnnenvrc
110elif [ -f /usr/local/lib/wnn8/ja_JP/wnnenvrc ] ; then
111    WNNENVRC=/usr/local/lib/wnn8/ja_JP/wnnenvrc
112elif [ -f /usr/lib/wnn8/ja_JP/wnnenvrc ] ; then
113    WNNENVRC=/usr/lib/wnn8/ja_JP/wnnenvrc
114else
115    eval NoWnnenvrcMsg_$LOCALE
116    exit -1
117fi
118eval RunMsg_$LOCALE $TARGET
119kinput2 -wnn -jserver ${WNN7_SERVER:=localhost} -wnnenvrc $WNNENVRC &
120return 0
121}
122
123Kinput2Wnn7(){
124isWnnAlive || exit -1
125
126if [ -f $HOME/.Wnn7/wnnenvrc ] ; then
127    WNNENVRC=$HOME/.Wnn7/wnnenvrc
128elif [ -f /usr/local/lib/wnn7/ja_JP/wnnenvrc ] ; then
129    WNNENVRC=/usr/local/lib/wnn7/ja_JP/wnnenvrc
130elif [ -f /usr/lib/wnn7/ja_JP/wnnenvrc ] ; then
131    WNNENVRC=/usr/lib/wnn7/ja_JP/wnnenvrc
132else
133    eval NoWnnenvrcMsg_$LOCALE
134    exit -1
135fi
136eval RunMsg_$LOCALE $TARGET
137kinput2 -wnn -jserver ${WNN7_SERVER:=localhost} -wnnenvrc6 $WNNENVRC &
138return 0
139}
140
141Kinput2Wnn6(){
142isWnnAlive || exit -1
143
144if [ -f $HOME/.Wnn6/wnnenvrc ] ; then
145    WNNENVRC=$HOME/.Wnn6/wnnenvrc
146elif [ -f /usr/local/lib/wnn6/ja_JP/wnnenvrc ] ; then
147    WNNENVRC=/usr/local/lib/wnn6/ja_JP/wnnenvrc
148elif [ -f /etc/wnn6/ja_JP/wnnenvrc ] ; then
149    WNNENVRC=/etc/wnn6/ja_JP/wnnenvrc
150else
151    eval NoWnnenvrcMsg_$LOCALE
152    exit -1
153fi
154eval RunMsg_$LOCALE $TARGET
155kinput2 -wnn -jserver ${WNN6_SERVER:=localhost} -wnnenvrc6 $WNNENVRC &
156return 0
157}
158
159Kinput2FreeWnn(){
160isWnnAlive || exit -1
161
162if [ -f /etc/FreeWnn/ja/wnnenvrc ] ; then
163    WNNENVRC=/etc/FreeWnn/ja/wnnenvrc
164else
165    eval NoWnnenvrcMsg_$LOCALE
166    exit -1
167fi
168
169eval RunMsg_$LOCALE FreeWnn
170kinput2 -wnn -jserver ${JSERVER:=localhost} -wnnenvrc4 $WNNENVRC &
171return 0
172}
173
174Kinput2(){
175
176isKinput2Alive && StopKinput2
177
178case "$TARGET" in
179        canna) Kinput2Canna ;;
180        wnn6)  Kinput2Wnn6  ;;
181        wnn7)  Kinput2Wnn7  ;;
182        wnn8)  Kinput2Wnn8  ;;
183        FreeWnn)  Kinput2FreeWnn  ;;
184        wnn)
185            if Wnn6Exists ; then
186                WNNTAG=wnn6
187            elif Wnn7Exists ; then
188                WNNTAG=wnn7
189            elif Wnn8Exists ; then
190                WNNTAG=wn8n
191            elif FreeWnnExists ; then
192                WNNTAG=FreeWnn
193            else
194                eval NoIMMsg_$LOCALE
195                return -1
196            fi
197
198            case "$WNNTAG" in
199                wnn6) Kinput2Wnn6 ;;
200                wnn7) Kinput2Wnn7 ;;
201                wnn8) Kinput2Wnn8 ;;
202                FreeWnn) Kinput2FreeWnn ;;
203            esac
204            ;;
205esac
206return 0
207}
208
209setLocale
210CheckOption $* || exit -1
211
212for arg in $* ; do
213    case $arg in
214        start)  CheckXIMStatus || UnknownExit
215                TARGET=${STATUS}
216                ;;
217        stop)   StopKinput2
218                exit 0
219                ;;
220        canna|Canna|CANNA)
221                TARGET=canna
222                ;;
223        wnn|Wnn|WNN)
224                TARGET=wnn
225                ;;
226        wnn6|Wnn6|WNN6)
227                TARGET=wnn6
228                ;;
229        wnn7|Wnn7|WNN7)
230                TARGET=wnn7
231                ;;
232        wnn8|Wnn8|WNN8)
233                TARGET=wnn8
234                ;;
235        FreeWnn|freewnn|wnn4|Wnn4)
236                TARGET=FreeWnn
237                ;;
238        *)
239                eval ShowUsage_$LOCALE; exit -1;;
240    esac
241done
242
243Kinput2 && echo "ok"
244
245exit 0
Note: See TracBrowser for help on using the repository browser.