A library for handling DID identifiers used in Bluesky AT Protocol
at 0.2.2 39 lines 915 B view raw
1#!/usr/bin/env ruby 2# frozen_string_literal: true 3 4$LOAD_PATH.unshift(File.expand_path('../lib', __dir__)) 5 6require "bundler/setup" 7require "didkit" 8 9resolver = DIDKit::Resolver.new(nameserver: '8.8.8.8') 10 11begin 12 query = ARGV[0].to_s 13 14 if query =~ /^did\:/ 15 did = DID.new(query) 16 elsif query =~ /^@[\w\-]+(\.[\w\-]+)+$/ 17 did = resolver.resolve_handle(query) 18 else 19 puts "Usage: #{$PROGRAM_NAME} <@handle> | <did:...>" 20 exit 1 21 end 22 23 if did.nil? 24 puts "Couldn't resolve handle #{query}" 25 return 26 end 27 28 doc = did.get_document 29 valid_handle = resolver.get_validated_handle(doc) 30 31 puts 32 puts "PDS: #{doc.pds_endpoint}" 33 puts "Resolved by: #{did.resolved_by}" if did.resolved_by 34 puts "Validated handle: " + (valid_handle ? "@#{valid_handle}" : "⚠️ invalid handle #{doc.handles.inspect}") 35 puts 36 puts JSON.pretty_generate(doc.json) 37rescue StandardError => e 38 puts "Error: #{e}" 39end