#! /usr/bin/env ruby
# -*- ruby -*-

require_relative '../lib/metadata/v2'

unless key = ARGV.shift
  STDERR.puts 'mdata-put: Usage: mdata-put <keyname> [ <value> ]'
  exit 3
end

unless value = ARGV.shift || (STDIN.read unless STDIN.tty?)
  STDERR.puts 'ERROR: either specify the metadata value as the second command-line argument, or pipe content to stdin.'
  exit 2
end

metadata = Metadata::V2::Client.new
response = metadata.put key, value

case response.code
when 'SUCCESS'
  exit 0
else
  STDERR.puts "Error putting metadata for key '#{key}': #{response.decode}"
  exit 2
end