#!/usr/bin/ruby

require 'optparse'

if ARGV.empty?
	STDERR.puts "usage: #{$0} domain"
	exit 1
end

class DomainSync
	attr_accessor :users
	attr_accessor :sites
	attr_accessor :domain
	def initialize(domain)
		self.sites = []
		self.users = []
		self.domain = domain
	end
end

actions = []

opts = OptionParser.new do |o|
	
	o.on("--users x,y,z", Array, "Users to sync") do |users|
		actions.last.users += users
	end
	
	o.on("--sites x,y,z", Array, "Sites to sync") do |sites|
		actions.last.sites += sites
	end

	o.on("--dummy") do |dummy|
	end

	o.on("--domain DOMAIN", "-d", String, "Domain") do |domain|
		actions << DomainSync.new(domain)
	end

end

opts.parse!(ARGV)

p actions

actions.each do |action|
	system %{sudo mkdir -p "/home/domains/#{action.domain}/"}
	add = ''
	add << action.users.map {|e| %{-path "users/#{e}"} }.join(' ')
	add << action.sites.map {|e| %{-path "sites/#{e}"} }.join(' ')
	system %{sudo unison "ssh://sirius//home/domains/#{action.domain}/" "/home/domains/#{action.domain}/" #{add} }
end

