feat: gettin there

This commit is contained in:
Karan Sharma 2020-12-10 15:09:05 +05:30
parent f888bd220f
commit df306e18a9
11 changed files with 181 additions and 24 deletions

View file

@ -4,9 +4,9 @@ import (
"os"
"strings"
"github.com/mr-karan/doggo/pkg/resolver"
resolver "github.com/mr-karan/doggo/pkg/resolve"
"github.com/sirupsen/logrus"
"github.com/urfave/cli"
"github.com/urfave/cli/v2"
)
var (
@ -37,23 +37,28 @@ func main() {
app.Name = "doggo"
app.Usage = "Command-line DNS Client"
app.Version = buildVersion
app.Author = "Karan Sharma @mrkaran"
// Register command line args.
app.Flags = []cli.Flag{
cli.BoolFlag{
Name: "verbose",
Usage: "Enable verbose logging",
},
}
var (
logger = initLogger(true)
)
// Initialize hub.
hub := NewHub(logger, buildVersion)
// Register command line args.
app.Flags = []cli.Flag{
&cli.StringSliceFlag{
Name: "query",
Usage: "Domain name to query",
Destination: hub.Domains,
},
&cli.BoolFlag{
Name: "verbose",
Usage: "Enable verbose logging",
},
}
app.Action = func(c *cli.Context) error {
// parse arguments
for _, arg := range c.Args() {
var domains cli.StringSlice
for _, arg := range c.Args().Slice() {
if strings.HasPrefix(arg, "@") {
hub.Nameservers = append(hub.Nameservers, arg)
} else if isUpper(arg) {
@ -63,7 +68,8 @@ func main() {
hub.QClass = append(hub.QClass, arg)
}
} else {
hub.Domains = append(hub.Domains, arg)
domains.Set(arg)
hub.Domains = &domains
}
}
// load defaults

View file

@ -2,14 +2,14 @@ package main
import (
"github.com/sirupsen/logrus"
"github.com/urfave/cli"
"github.com/urfave/cli/v2"
)
// Hub represents the structure for all app wide functions and structs.
type Hub struct {
Logger *logrus.Logger
Version string
Domains []string
Domains *cli.StringSlice
QTypes []string
QClass []string
Nameservers []string

13
cmd/parse.go Normal file
View file

@ -0,0 +1,13 @@
package main
func (hub *Hub) loadFlags() {
}
func (hub *Hub) loadFreeForm() {
}
func (hub *Hub) loadFallbacks() {
}

View file

@ -8,12 +8,12 @@ import (
// Resolve resolves the domain name
func (hub *Hub) Resolve() {
var messages = make([]dns.Msg, 0, len(hub.Domains))
for _, d := range hub.Domains {
var messages = make([]dns.Msg, 0, len(hub.Domains.Value()))
for _, d := range hub.Domains.Value() {
msg := dns.Msg{}
msg.Id = dns.Id()
msg.RecursionDesired = true
msg.Question = []dns.Question{(dns.Question{d, dns.TypeA, dns.ClassINET})}
msg.Question = []dns.Question{(dns.Question{dns.Fqdn(d), dns.TypeA, dns.ClassINET})}
messages = append(messages, msg)
}
c := new(dns.Client)
@ -27,6 +27,6 @@ func (hub *Hub) Resolve() {
fmt.Println(t.String())
}
}
fmt.Println("rtt is", rtt, msg.Question)
fmt.Println("rtt is", rtt, msg.Question[0].Name)
}
}