[1120] | 1 | #!/bin/bash |
---|
| 2 | # kinput2ctl by Jun Nishii <jun@vinelinux.org> |
---|
| 3 | # Time-stamp: <2000-12-19 10:55:48 vine> |
---|
| 4 | |
---|
| 5 | CANNARPM=Canna |
---|
| 6 | WNNRPM=FreeWnn |
---|
| 7 | WNN6RPM=wnn6 |
---|
| 8 | |
---|
| 9 | . /usr/share/vine/imelib |
---|
| 10 | |
---|
| 11 | ########## Messages #############################3 |
---|
| 12 | ShowUsage_ja() { |
---|
| 13 | cat <<EOF |
---|
| 14 | Usage: ${1##/*/} {start|stop|canna|wnn} |
---|
| 15 | start: kinput2 を起動します |
---|
| 16 | (XIM_PROG で定義されたデフォルトの漢字変換サーバとつなぎます) |
---|
| 17 | stop: kinput2 を停止します |
---|
| 18 | canna: kinput2 を起動し、かんなサーバと接続します |
---|
| 19 | wnn: kinput2 を起動し、Wnn サーバと接続します |
---|
| 20 | EOF |
---|
| 21 | } |
---|
| 22 | |
---|
| 23 | ShowUsage_C() { |
---|
| 24 | cat <<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 |
---|
| 30 | EOF |
---|
| 31 | } |
---|
| 32 | |
---|
| 33 | UnknownMsg_ja(){ |
---|
| 34 | echo "未知の漢字変換システムが設定されています(XIM_PROG): $XIM_PROG" |
---|
| 35 | } |
---|
| 36 | |
---|
| 37 | UnknownMsg_C(){ |
---|
| 38 | echo "unknown XIM_PROG: $XIM_PROG" |
---|
| 39 | } |
---|
| 40 | |
---|
| 41 | KillKinput2Msg_ja(){ |
---|
| 42 | echo "現在走っている kinput2 を停止します." |
---|
| 43 | } |
---|
| 44 | |
---|
| 45 | KillKinput2Msg_C(){ |
---|
| 46 | echo "kill currently runnning kinput2." |
---|
| 47 | } |
---|
| 48 | |
---|
| 49 | RunMsg_ja(){ |
---|
| 50 | echo "kinput2 を起動し、$1 サーバと接続します..." |
---|
| 51 | } |
---|
| 52 | |
---|
| 53 | RunMsg_C(){ |
---|
| 54 | echo "run kinput2 for $1..." |
---|
| 55 | } |
---|
| 56 | |
---|
| 57 | NoWnnenvrcMsg_ja(){ |
---|
| 58 | echo "wnnenvrc が見付かりません!" |
---|
| 59 | echo "設定を終了します..." |
---|
| 60 | } |
---|
| 61 | |
---|
| 62 | NoWnnenvrcMsg_C(){ |
---|
| 63 | echo "Not Found wnnenvrc!" |
---|
| 64 | echo "exit setup..." |
---|
| 65 | } |
---|
| 66 | |
---|
| 67 | ########## end of Messages #############################3 |
---|
| 68 | |
---|
| 69 | CheckOption() { |
---|
| 70 | if [ $# != 1 ] ; then |
---|
| 71 | eval ShowUsage_$LOCALE ${0##*/} |
---|
| 72 | return -1 |
---|
| 73 | fi |
---|
| 74 | return 0 |
---|
| 75 | } |
---|
| 76 | |
---|
| 77 | UnknownExit(){ |
---|
| 78 | eval UnknownMsg_$LOCALE |
---|
| 79 | exit -1 |
---|
| 80 | } |
---|
| 81 | |
---|
| 82 | StopKinput2(){ |
---|
| 83 | isKinput2Alive || return -1 |
---|
| 84 | eval KillKinput2Msg_$LOCALE |
---|
| 85 | killmyproc kinput2 |
---|
| 86 | return 0 |
---|
| 87 | } |
---|
| 88 | |
---|
| 89 | isKinput2Alive(){ |
---|
| 90 | pid=`pidofproc kinput2` |
---|
| 91 | if [ -n "$pid" ] ; then |
---|
| 92 | return 0 |
---|
| 93 | fi |
---|
| 94 | return -1 |
---|
| 95 | } |
---|
| 96 | |
---|
| 97 | Kinput2Canna(){ |
---|
| 98 | isCannaAlive || exit -1 |
---|
| 99 | |
---|
| 100 | eval RunMsg_$LOCALE $TARGET |
---|
| 101 | kinput2 -canna ${CANNA_SERVER:+-cannaserver $CANNA_SERVER} & |
---|
| 102 | return 0 |
---|
| 103 | } |
---|
| 104 | |
---|
| 105 | Kinput2Wnn8(){ |
---|
| 106 | isWnnAlive || exit -1 |
---|
| 107 | |
---|
| 108 | if [ -f $HOME/.Wnn8/wnnenvrc ] ; then |
---|
| 109 | WNNENVRC=$HOME/.Wnn8/wnnenvrc |
---|
| 110 | elif [ -f /usr/local/lib/wnn8/ja_JP/wnnenvrc ] ; then |
---|
| 111 | WNNENVRC=/usr/local/lib/wnn8/ja_JP/wnnenvrc |
---|
| 112 | elif [ -f /usr/lib/wnn8/ja_JP/wnnenvrc ] ; then |
---|
| 113 | WNNENVRC=/usr/lib/wnn8/ja_JP/wnnenvrc |
---|
| 114 | else |
---|
| 115 | eval NoWnnenvrcMsg_$LOCALE |
---|
| 116 | exit -1 |
---|
| 117 | fi |
---|
| 118 | eval RunMsg_$LOCALE $TARGET |
---|
| 119 | kinput2 -wnn -jserver ${WNN7_SERVER:=localhost} -wnnenvrc $WNNENVRC & |
---|
| 120 | return 0 |
---|
| 121 | } |
---|
| 122 | |
---|
| 123 | Kinput2Wnn7(){ |
---|
| 124 | isWnnAlive || exit -1 |
---|
| 125 | |
---|
| 126 | if [ -f $HOME/.Wnn7/wnnenvrc ] ; then |
---|
| 127 | WNNENVRC=$HOME/.Wnn7/wnnenvrc |
---|
| 128 | elif [ -f /usr/local/lib/wnn7/ja_JP/wnnenvrc ] ; then |
---|
| 129 | WNNENVRC=/usr/local/lib/wnn7/ja_JP/wnnenvrc |
---|
| 130 | elif [ -f /usr/lib/wnn7/ja_JP/wnnenvrc ] ; then |
---|
| 131 | WNNENVRC=/usr/lib/wnn7/ja_JP/wnnenvrc |
---|
| 132 | else |
---|
| 133 | eval NoWnnenvrcMsg_$LOCALE |
---|
| 134 | exit -1 |
---|
| 135 | fi |
---|
| 136 | eval RunMsg_$LOCALE $TARGET |
---|
| 137 | kinput2 -wnn -jserver ${WNN7_SERVER:=localhost} -wnnenvrc6 $WNNENVRC & |
---|
| 138 | return 0 |
---|
| 139 | } |
---|
| 140 | |
---|
| 141 | Kinput2Wnn6(){ |
---|
| 142 | isWnnAlive || exit -1 |
---|
| 143 | |
---|
| 144 | if [ -f $HOME/.Wnn6/wnnenvrc ] ; then |
---|
| 145 | WNNENVRC=$HOME/.Wnn6/wnnenvrc |
---|
| 146 | elif [ -f /usr/local/lib/wnn6/ja_JP/wnnenvrc ] ; then |
---|
| 147 | WNNENVRC=/usr/local/lib/wnn6/ja_JP/wnnenvrc |
---|
| 148 | elif [ -f /etc/wnn6/ja_JP/wnnenvrc ] ; then |
---|
| 149 | WNNENVRC=/etc/wnn6/ja_JP/wnnenvrc |
---|
| 150 | else |
---|
| 151 | eval NoWnnenvrcMsg_$LOCALE |
---|
| 152 | exit -1 |
---|
| 153 | fi |
---|
| 154 | eval RunMsg_$LOCALE $TARGET |
---|
| 155 | kinput2 -wnn -jserver ${WNN6_SERVER:=localhost} -wnnenvrc6 $WNNENVRC & |
---|
| 156 | return 0 |
---|
| 157 | } |
---|
| 158 | |
---|
| 159 | Kinput2FreeWnn(){ |
---|
| 160 | isWnnAlive || exit -1 |
---|
| 161 | |
---|
| 162 | if [ -f /etc/FreeWnn/ja/wnnenvrc ] ; then |
---|
| 163 | WNNENVRC=/etc/FreeWnn/ja/wnnenvrc |
---|
| 164 | else |
---|
| 165 | eval NoWnnenvrcMsg_$LOCALE |
---|
| 166 | exit -1 |
---|
| 167 | fi |
---|
| 168 | |
---|
| 169 | eval RunMsg_$LOCALE FreeWnn |
---|
| 170 | kinput2 -wnn -jserver ${JSERVER:=localhost} -wnnenvrc4 $WNNENVRC & |
---|
| 171 | return 0 |
---|
| 172 | } |
---|
| 173 | |
---|
| 174 | Kinput2(){ |
---|
| 175 | |
---|
| 176 | isKinput2Alive && StopKinput2 |
---|
| 177 | |
---|
| 178 | case "$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 | ;; |
---|
| 205 | esac |
---|
| 206 | return 0 |
---|
| 207 | } |
---|
| 208 | |
---|
| 209 | setLocale |
---|
| 210 | CheckOption $* || exit -1 |
---|
| 211 | |
---|
| 212 | for 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 |
---|
| 241 | done |
---|
| 242 | |
---|
| 243 | Kinput2 && echo "ok" |
---|
| 244 | |
---|
| 245 | exit 0 |
---|