[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:22790] Re: about dbskkd-cdb
> cdbmake: fatal: unable to rename: Invalid cross-device link
>
> というエラーが出ました。`tempfile` が /tmp にファイルを作成することが
> 原因と思われましたので、SKK-JISYO.L を /tmp にコピーして /tmp で実行し
> ましたら、SKK-JISYO.L.cdb が出来、これを /usr/share/skk へ mv してテス
> トして、無事動いていることを確認いたしました。
なるほど。一時ファイルは同じディレクトリにないとマズいんです
ね。修正したスクリプトを添付しましたので、御批評ください。>all
dbskkd-cdb -> dbskkd-cdb
dbskkd-cdb-dic
に分割するつもりですが、修正スクリプトをdbskkd-cdbの
examples/にいれて、README.Debianで説明しておくのでいいですか
ね。それとも、dbskkd-cdb-makedicみたいなパッケージがあった方
がいいでしょうか。makeskkcdbdic(もっといい名前ないですか?)
とmakeskkcdbdic.1しか含まれないパッケージですけど…。
#!/bin/bash でないとダメかな?
----------
#!/bin/sh
[[ $# == 0 ]] && echo "Usage: ${0##*/} SKK-JISYO [SKK-JISYO-CDB]" 1>&2 && exit 1
[[ ! -f $1 || ! -r $1 ]] && echo "${0##*/}: $1: can't read" 1>&2 && exit 2
[[ $# == 1 ]] && set $1 $1.cdb
dir=`dirname $2`
[[ ! -d $dir || ! -w $dir ]] && echo "${0##*/}: $dir: can't write" 1>&2 && exit 3
tmpf=`tempfile --directory=$dir`
trap "[[ -e $tmpf ]] && rm $tmpf; exit 4" INT TERM
awk '
/^[^;]/ {
s = substr($0, index($0, " ") + 1)
print "+" length($1) "," length(s) ":" $1 "->" s
}
END {
print ""
}
' $1 | cdbmake $2 $tmpf
chmod 644 $2
----------
--
川村 尚生