Sha256: 7990706125bb40d784e6cf984a9bb0d37311d557ced79740bc4897a4d71df801

Contents?: true

Size: 1.32 KB

Versions: 77

Compression:

Stored size: 1.32 KB

Contents

#!/usr/bin/env ruby
#
require 'tins/xt'
require 'set'

$shortcuts = Set.new

def shortcut(fn, suffix = nil)
  shortcut = fn.scan(/([A-ZÄÖÜ])[a-zäöü]/).join.downcase
  shortcut.empty? and return fn.gsub(' ', ?_)
  shortcut = "#{shortcut}#{suffix}"
  while $shortcuts.member?(shortcut)
    shortcut.sub!(/(\d+)\z/) { $1.to_i + 1 }
    shortcut.sub!(/\D\z/, '\\&1')
  end
  $shortcuts << shortcut
  shortcut
end

vcf_path = ARGV.shift || '~/Desktop/Contacts.vcf'
vcf_path = File.expand_path vcf_path
alias_path = ARGV.shift || '~/.muttrc-aliases'
alias_path = File.expand_path alias_path
begin
  real_alias_path = File.readlink alias_path
  alias_path = real_alias_path
rescue Errno::ENOENT
end

File.secure_write(alias_path) do |aliases|
  File.open(vcf_path) do |vcf|
    until vcf.eof?
      card = vcf.readline('END:VCARD')
      fn = card[/^FN:(.*)/, 1] or next
      fn.chomp!
      hemail = card[/^EMAIL;.*?type=HOME.*?:(.*)/, 1]
      hemail and aliases.puts "alias #{shortcut(fn, ?h)} #{fn} <#{hemail.chomp}>"
      wemail = card[/^EMAIL;.*?type=WORK.*?:(.*)/, 1]
      wemail and aliases.puts "alias #{shortcut(fn, ?w)} #{fn} <#{wemail.chomp}>"
      email = card[/^EMAIL;.*?:(.*)/, 1]
      if email && ! [ hemail, wemail ].include?(email)
        aliases.puts "alias #{shortcut(fn)} #{fn} <#{email.chomp}>"
      end
    end
  end
end

Version data entries

77 entries across 77 versions & 1 rubygems

Version Path
utils-0.60.1 bin/vcf2alias
utils-0.60.0 bin/vcf2alias
utils-0.59.2 bin/vcf2alias
utils-0.59.1 bin/vcf2alias
utils-0.59.0 bin/vcf2alias
utils-0.58.0 bin/vcf2alias
utils-0.57.1 bin/vcf2alias
utils-0.57.0 bin/vcf2alias
utils-0.56.1 bin/vcf2alias
utils-0.56.0 bin/vcf2alias
utils-0.55.0 bin/vcf2alias
utils-0.54.1 bin/vcf2alias
utils-0.54.0 bin/vcf2alias
utils-0.53.1 bin/vcf2alias
utils-0.53.0 bin/vcf2alias
utils-0.52.1 bin/vcf2alias
utils-0.52.0 bin/vcf2alias
utils-0.51.1 bin/vcf2alias
utils-0.51.0 bin/vcf2alias
utils-0.50.0 bin/vcf2alias