Project

General

Profile

« Previous | Next » 

Revision 11c9a6c9

Added by Marc Dequènes almost 15 years ago

  • ID 11c9a6c91cc6e37cfde936422976b40e927a4b6b

[evol/fix] added uploading of files for binary fields, fixed broken '-=' operator in the 'mod' command, fixed another index bug for the 'show' command, and modified the show commmand to display binary fields without newline (usefull for pipes or redirections)

View differences:

bin/shadowwalker
end
field_data = item.send(field_name)
field_data = [field_data] unless field_data.is_a?(Array)
result_is_binary = false
if file_no == "?"
result = field_data.size
else
......
exit 2
end
result = (field_data.is_a?(Array) ? field_data[file_no] : field_data)
result = field_data[file_no]
result_is_binary = attr_info.binary?
end
if args.empty?
puts result
if result_is_binary
# output binary data without newline, so it can be pipped or redirected easily
STDOUT.write result
else
puts result
end
else
file_name = args.shift
if File.exists?(file_name)
......
next
end
if attr_info.binary?
unless File.exists?(val)
STDERR.puts "The field '#{field}' contains binary data, you must provide a filename instead of a direct value."
exit 2
end
begin
val = File.read(val)
rescue
STDERR.puts "The file for the binary field '#{field}' cannot be read: " + $!
exit 2
end
end
old_val = item.send(field)
old_val = [old_val] unless old_val.is_a? Array
when 'rel'
......
case type
when nil
new_val = old_val - [val]
item.send(field + "=", new_val)
when 'rel'
item.send(field).delete(val)
end
......
begin
cmdparser.parse
rescue ActiveLdap::EntryInvalid => e
STDERR.puts e.to_s
# work around #26758
STDERR.puts e.to_s.sub(/invalid format: .*: required syntax:/, "invalid format. required syntax:")
exit 3
rescue ActiveLdap::OperationNotPermitted => e
STDERR.puts "You don't have enough rights for this operation."

Also available in: Unified diff