#!/bin/sh
# url: http://pank.org/scripts/
# description: add Liu5 input method to SCIM, need liu5.cin or liu55.cin
# comment: csh, bash
# platform: linux

if [ -z $1 ] ; then
    echo "`basename $0` {liu cin file}"
    echo "e.g. `basename $0` liu5.cin"
    exit
fi

if [ ! -f /usr/share/scim/icons/liu5.png ] ; then
    wget -P /usr/share/scim/icons http://pank.org/ftp/linux/liu5.png
fi

CIN=scimliu5.cin
cat<<EOF>$CIN
### File header must not be modified
### This file must be encoded into UTF-8.
### This file comes from xcin module.
SCIM_Generic_Table_Phrase_Library_TEXT
VERSION_1_0

### Begin Table definition.
BEGIN_DEFINITION

### An unique id to distinguish this table among others.
### Use uuidgen to generate this kind of id.
UUID = `uuidgen`

### A unique number indicates the version of this file.
### For example the last modified date of this file.
### This number must be less than 2^32.
SERIAL_NUMBER = `date +%Y%m%d`

ICON = /usr/share/scim/icons/liu5.png

### The default name of this table
NAME = 嘸蝦米

### The local names of this table
NAME.zh_CN = 嘸蝦米
NAME.zh_TW = 嘸蝦米
NAME.zh_HK = 嘸蝦米

### Supported languages of this table
LANGUAGES = zh_TW,zh_HK,zh_CN,zh_SG

### Prompt string to be displayed in the status area.
STATUS_PROMPT = 中

### If true then the first candidate phrase
### will be selected automatically during inputing.
AUTO_SELECT = FALSE

### If true then a multi wildcard will be appended
### at the end of inputing string automatically.
AUTO_WILDCARD = TRUE

### If true then the result string will be committed to client
### automatically.
### This should be used with AUTO_SELECT = TRUE.
AUTO_COMMIT = FALSE

### If true then the inputed string will be automatically splitted during
### inputing.
AUTO_SPLIT = TRUE

### If true then the phrases' frequencies will be adjusted dynamically.
DYNAMIC_ADJUST = TRUE

### If true then the preedit area will be filled up by the current candidate
### phrase automatically.
AUTO_FILL = FALSE

### If true then the lookup table will always be shown if there is any
### candidate phrase.
### Otherwise the lookup table won't be shown unless the user requires it by
### moving the preedit caret left.
ALWAYS_SHOW_LOOKUP = TRUE

### Use full width punctuation by default
DEF_FULL_WIDTH_PUNCT = TRUE

### Use full width letter by default
DEF_FULL_WIDTH_LETTER = FALSE

### The maxmium length of a key.
MAX_KEY_LENGTH = 4

### Valid input chars.
VALID_INPUT_CHARS = ,.'abcdefghijklmnopqrstuvwxyz[]

### Single wildcard char, can have multiple chars.
SINGLE_WILDCARD_CHAR = ?

### Multi wildcard char.
MULTI_WILDCARD_CHAR = *

### The key strokes to split inputed string.
SPLIT_KEYS = space

### The key strokes to commit the convert result to client.
COMMIT_KEYS = space

### The key strokes to forward the inputed string to client.
FORWARD_KEYS = Return

### The key strokes to select candidiate phrases.
SELECT_KEYS = space,v,3,4,5,6,7,8,9,0

### The key strokes to page up the lookup table.
PAGE_UP_KEYS = Page_Up

### The key strokes to page down the lookup table.
PAGE_DOWN_KEYS = Page_Down,space
END_DEFINITION

### Begin Table data.
BEGIN_TABLE
EOF
grep -A30000 '^a ' $1 | iconv -fbig5 -tutf-8 >> $CIN
echo END_TABLE >> $CIN
scim-make-table $CIN -b -o /usr/share/scim/tables/liu5.bin

if [ -f /usr/share/scim/tables/liu5.bin ] ; then
    echo OK
else
    echo Error! table file liu5.bin not found.
    exit 1
fi