#compdef irssi

local expl

_irssi_servers() {
  local a
  a=( $(grep "\(^[{ 	]*address\)\|\([{ 	]address\)[ 	]*=" ~/.irssi/config | sed -e "s,^.*address *= *\"\([^\"]\+\).*,\1 ,g") )
  _wanted irc-servers expl 'irc server' compadd "$@" -a - a
}

_irssi_ports() {
  local a
  a=( $(grep "\(^[{ 	]*port\)\|\([{ 	]port\)[ 	]*=" ~/.irssi/config | sed -e "s,^.*port *= *\"\([^\"]\+\).*,\1,g") )
  _wanted ports expl 'port' compadd "$@" -a - a
}

_irssi_nick() {
  local a
  a=( $(grep "\(^[{ 	]*nick\)\|\([{ 	]nick\)\|\([{ 	]alternate_nick\)\|\(^[{ 	]*alternate_nick\)[ 	]*=" ~/.irssi/config | sed -e "s,^.*nick *= *\"\([^\"]\+\).*,\1,g") )
  _wanted nicknames expl 'nick' compadd "$@" -a - a
}

_arguments -s \
  '--config=[config file]:config:_files' \
  '--home=[home dir location]:home:_dir_list' \
  '(-c --connect)'{-c,--connect=}'[connect to servers]:irc server:_irssi_servers' \
  '(-w --password)'{-w,--password=}'[password]:password' \
  '(-p --port)'{-p,--port=}'[specify a port]:port:_irssi_ports' \
  '-![disable autoconnect]' \
  '--noconnect[disable autoconnect]' \
  '(-n --nick)'{-n,--nick=}'[set nick name]:nick:_irssi_nick' \
  '(-h --hostname)'{-h,--hostname=}'[specify hostname]:hostname:_hosts' \
  '(-)'{-v,--version}'[display version information]' \
  '(-)'{-\?,--help}'[display help information]' \
  '(-)--usage[display usage]'

