#!/bin/sh -e

. shell-error
. ldap-config

[ -n "$(echo "$1"|grep '/etc/openldap')" ] && SLAPD_CONF="$1" && shift

ldap_config "$SLAPD_CONF"

[ "$#" -eq 1 ] || fatal "more arguments required"
user="$1"; shift

#edit ldap
ruby -e '
require "ldap"
require "ldap/ldif"

dn = ARGV[0]
attrs = {}
$stdin.each do |l|
  key, val = l.chomp.split(/:/, 2)
  attrs[key] ||= []
  attrs[key] << val unless val.empty?
end
puts LDAP::LDIF.mods_to_ldif(dn, *LDAP.hash2mods(LDAP::LDAP_MOD_REPLACE, attrs))
' "uid=$user,ou=People,$base" |
	ldapmodify -D "$rootdn" $rootpw -x -H "ldap://${host:-127.0.0.1}"
