class Countdown
  
  def run seconds, options={}
    seconds.downto(0) do |current_seconds|
      sleep 1
      write_tmux(current_seconds) if (options[:services] || []).include?(:tmux)
      set_window_title(current_seconds) if (options[:services] || []).include?(:iterm2)
      STDOUT.write "[RUNNING] #{to_minutes(current_seconds)}\r"
    end
  end

  private

  def write_tmux(current_seconds)
    `echo #{to_minutes(current_seconds, :tmux)} > ~/.pomo.txt.tmux` 
  end

  def set_window_title(current_seconds)
    title = to_minutes(current_seconds, :tmux)
    `echo -ne "\e]1;#{title}\a"`
  end

  def to_minutes seconds, format=:standard
    minutes = seconds / 60
    mins    = sprintf("%02d", minutes)
    secs    = sprintf("%02d", seconds % 60)
    if format == :standard
      "#{mins}:#{secs} [#{dots_for(minutes)}]"
    else
      "#{mins}:#{secs}"
    end
  end


  def dots_for mins
    "#{'.' * (25 - mins)}#{' ' * mins}"
  end

end