#!/usr/bin/ruby require 'socket' require "rexml/document" if ARGV.length < 2 || ARGV.length > 3 then puts "Usage: removeMember Firstname [Lastname]" puts " Where == [/]*" puts puts " Example: removeMember CU Ken" puts " Example: removeMember CU/CS Ken Anderson" puts " Example: removeMember CU/CS/Software Ken Anderson" puts exit end groupName = ARGV[0] name = ARGV[1].dup if (ARGV.length == 3) then name = name + " " + ARGV[2] end # if groupName ends with a "/" character, remove it if (groupName =~ /\/$/) then groupName = groupName.chop end member = "" members = `getMemberIds.rb #{groupName}`.chop rows = members.split(/\n/) rows.each { |line| columns = line.split(/:/) if columns[0] == name then member = columns[1] end } if member == "" then puts "#{name} is not a member of group: #{groupName}" exit end s = TCPSocket.new( 'infinite.local' , 80 ) s.puts("DELETE /~kena/addressBook/data/#{groupName}/#{member}.xml HTTP/1.0") s.puts doc = REXML::Document.new s status = doc.root.elements["//status"] reason = doc.root.elements["//reason"] if !(defined?(status) && defined?(reason)) then puts "Received Invalid Response from Server" exit end if status.text == "success" then print("Succeeded: ") else print("Failed: ") end puts "#{reason.text}"