#!/usr/bin/env ruby
$: << File.join(File.dirname(__FILE__), "../lib")

require "reddilicious.rb"

def usage
  STDERR.puts <<-USAGE 
  Usage:
  reddilicious update           # Update a reddilicious instance, posting the new bookmarks to delicious"
  reddilicious undo [site]      # deletes all imported posts (from specific site, or all if not specified)
  USAGE
  Reddilicious.site_names.each do  |site|
    STDERR.puts "  reddilicious #{site}     # set your #{site} user" 
  end  

  exit(1)
end

dir=ENV["REDDILICIOUS_HOME"] || File.join(ENV["HOME"], ".reddilicious")
reddilicious = Reddilicious.new(dir)

if !File.directory?(dir)
  puts "no such directory #{dir}. Creating..."
  Dir.mkdir(dir)

  puts "Delicious user name:" 
  delicious = STDIN.gets.strip
  delicious = nil if delicious == ""
  puts "Delicious password:"
  delicious_password = STDIN.gets.strip
  reddilicious.create!(delicious, delicious_password)
end

case ARGV[0]
  when "update"
    File.open("#{dir}/reddilicious.log", "a") do |log|
      log.sync = true
      $stdout = log
      $stderr = log
      reddilicious.transfer_to_delicious 
    end
  when *Reddilicious.site_names:
    reddilicious.site_for(ARGV[0]).ask_for_credentials
  when "undo"    
    sites = ARGV[1..-1].empty? ? Reddilicious.site_names : ARGV[1..-1]
    puts "undo import for sites #{sites.inspect}: are you sure? (y/n)"
    if STDIN.gets.strip.downcase == 'y'           
      sites.each { |s|  reddilicious.site_for(s).undo_import! }
    end
  else usage    
end
