awl: drill, writ small
grumbulon
9b979667d6
1. I made JSON print indented instead of inline 2. I created a util package and moved `ReverseDNS` and `ResolveHTTPS` there 3. I created a new struct called Answers where all variables for the output live now, and adjusted the response struct to have the Answers struct in it. This lets us reuse the struct more instead of having variables floating around, lets us make the response more custom, offers more understandable code reuse, and makes things (I think) more readable. Aside: you will notice the struct has little json defs. This is because struct values encode as JSON objects and can preserve the output name this way Most of this just makes expanding on awl easier in the future. Co-authored-by: grumbulon <grumbulon@dismail.de> Reviewed-on: sam/awl#2 Co-authored-by: grumbulon <grumbulon@grumbulon.xyz> Co-committed-by: grumbulon <grumbulon@grumbulon.xyz> |
||
---|---|---|
util | ||
.gitignore | ||
awl.go | ||
docs.go | ||
go.mod | ||
go.sum | ||
README.md |
awl
awl
is a command-line DNS client, much like
drill
,
dig
,
dog
,
doggo
,
or q
The excellent dns library for Go does most of the heavy lifting.
What works
- UDP
- TCP
- TLS
- HTTPS (maybe)
What doesn't
- DNS-over-QUIC (eventually)
- Your sanity after reading my awful code
- A motivation for making this after finding q and doggo
What should change
- Make the CLI less abysmal (migrate to cobra? or just use stdlib's flags)
- Optimize everything
- Make the code less spaghetti
- Like not just having one massive unreadable file, this is AWFUL
- Documentation, documentation, documentation