#! /usr/local/bin/ruby # # Elm # # = ; , = # # Mutt # # alias ( ) # # 1.1 12/02/01 first version rcsid = "$Id" ## Config. ## mutt_dir = ENV['HOME'] + "/src/ruby" elm_alias = "#{mutt_dir}/aliases.text" mutt_alias = "#{mutt_dir}/aliases/mail" euro_alias = "#{mutt_dir}/aliases/euro" grp_alias = "#{mutt_dir}/aliases/group" prog_name = File.basename $0 cnt = 0 # normal alias count euro_cnt = 0 # Eurocontrol alias count grp_cnt = 0 # Group alias count ## Open files ## fh_out = File.new (mutt_alias, "w") fh_euro = File.new (euro_alias, "w") fh_grp = File.new (grp_alias, "w") ## Output banner in Mutt alias file ## fh_out.print <<"EOF" ## #{mutt_alias} ## Converted by #{prog_name}, v1.1 from aliases.text ## ## Ollivier Robert ## EOF fh_euro.print <<"EOF" ## #{mutt_alias} ## Converted by #{prog_name}, v1.1 from aliases.text ## ## @eurocontrol.fr addresses ONLY ## ## Ollivier Robert ## EOF fh_grp.print <<"EOF" ## #{grp_alias} ## Converted by #{prog_name}, v1.1 from aliases.text ## ## Group addresses ONLY ## ## Ollivier Robert ## EOF IO.foreach (elm_alias) { |line| ## Convert ## line.chomp! ## Skip comments and blank lines ## next if line =~/^#/o or /^$/o ## Split ## handle, full_info, addr = line.split /\s*=\s*/o last, first, comment = full_info.split /[,;]/o ## Skip leading blanks ## first.to_s.gsub! (/\G /, '') last.gsub! (/\G /, '') comment = "" if comment.nil? comment.gsub! (/\G /, '') ## Output converted aliases ## is_euro = Regexp.new (/\s*[-:]\s*/, Regexp::EXTENDED) if addr =~ /@(.*?\.|)eurocontrol\.(fr|de|be)$/ acron, room, phone = comment.split (is_euro) fh_euro.print <<"EOT" # Acronym: #{acron} / Room: #{room} / Phone: #{phone} alias #{handle} #{first} #{last} <#{addr}> EOT euro_cnt = euro_cnt + 1 elsif addr =~ /,/ ## We have a group ## fh_grp.print <<"EOT" # Info: #{comment} alias #{handle} #{addr} EOT grp_cnt = grp_cnt + 1 else fh_out.print <<"EOT" # Info: #{comment} alias #{handle} #{first} #{last} <#{addr}> EOT cnt = cnt + 1 end } fh_out.close fh_euro.close total_cnt = cnt + euro_cnt + grp_cnt print <<"EOF" Read #{total_cnt} aliases... #{cnt}\tregular aliases converted. #{euro_cnt}\tEurocontrol aliases converted. #{grp_cnt}\tGroup aliases converted. EOF