ldif形式を簡単に作りたい

LDAPサーバーをたてたからとりあえずアドレス帳として使えるようにしてみた。
試しのデータが検索できるので、自分の手持ちアドレス帳を登録したい。
でもこの登録が結構面倒で、ldifで流し込むのが速そうだが、thunderbirdのエクスポートは当然そのままでは使えない。
そこでエクスポートしたcsvファイルをexcelでチャイチャイと編集した後でldifに並び替えてくれるようにスクリプトをくんでみた。
初めてのRuby、デビューです。(祝
ヘタレなものですが、改造して使ってくださいまし。
特にUTF-8環境でしかまともに動かないものかと思うので、iconvでも使って出力をCP932=>UTF-8にする様に一工夫する必要があるかも。
とりあえず動いています。
#!/usr/bin/env ruby
$KCODE = “UTF8”
require ‘base64’
unless ARGV[0]
print “tcsv2ldif.rb -Version0.1- 2008/6/20n”
print “t使用方法:ntt./csv2ldif.rb csvfilen”
exit 1
end
index, array = Array.new()
file = open(ARGV[0])
index = file.gets.chomp!.split(“,”) # インデックス配列取得
#整列
while file.gets
next if $_.strip.empty?
array = $_.chomp!.split(“,”, -1) #配列に分けています
i = -1 #the 力業
index.each do |name|
i +=1
next if array[i].strip.empty? #中身のない項目は抜かします
print name, “:: “, Base64.encode64(array[i]).split.join, “n” #まぁとりあえず
end
print “n”
end
file.close
こんな並べ替えがなんの役に立つのかと言えば、
いろいろなソフトから出力されるアドレス帳のエクスポートから先頭行の項目名とスキーマと照らし合わせ、必要なものだけ名前を入れ替える。
いらないものは名前を付けない。。(これも排除してしまう処理がほしいねぇ)
そうしておいて、スクリプトに書ければ先頭のdnとか書いたらすぐ使えるかなぁって寸法なのです。
安易。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です