def user_set_keywords(attribs, dir_info)
      attribs = user_record_name_alternatives(attribs)
      check_critical_attribute( attribs, :record_name )

      attribs[:values] = attribs[:values] || attribs[:keywords]
      attribs[:values] = attribs[:values] || attribs[:keyword]

      answer = []
      Array(attribs[:values]).each_with_index do |value, index|
        attribs[:value] = value

        case index
        when 0
          answer << user_create_keyword(attribs, dir_info)
        else
          answer << user_append_keyword(attribs, dir_info)
        end
      end
      return answer  unless attribs[:values].nil? or attribs[:values].empty?
      raise ArgumentError, "values: '#{attribs[:values].inspect}' invalid, value_name: :keywords"
    end
def user_set_keywords(attribs, dir_info)
      attribs = user_record_name_alternatives(attribs)
      check_critical_attribute( attribs, :record_name )

      attribs[:values] = attribs[:values] || attribs[:keywords]
      attribs[:values] = attribs[:values] || attribs[:keyword]

      answer = []
      Array(attribs[:values]).each_with_index do |value, index|
        attribs[:value] = value

        case index
        when 0
          answer << user_create_keyword(attribs, dir_info)
        else
          answer << user_append_keyword(attribs, dir_info)
        end
      end
      return answer  unless attribs[:values].nil? or attribs[:values].empty?
      raise ArgumentError, "values: '#{attribs[:values].inspect}' invalid, value_name: :keywords"
    end
/usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -append /Users/$shortname_USERNAME apple-keyword "$VALUE"