add dig completion #3495

Merged
merged 1 commit into from Nov 4, 2016

Conversation

Projects
None yet
2 participants
@elnappo
Contributor

elnappo commented Oct 26, 2016

Description

Added dig completion. For now +tries=### +retry=### +domain=### +bufsize=### +ndots=### +edns=### are missing as I'n not sure how to handle this properly. Generally, this completion feels more like a hack for me.

dig manpage

Usage:  dig [@global-server] [domain] [q-type] [q-class] {q-opt}
            {global-d-opt} host [@local-server] {local-d-opt}
            [ host [@local-server] {local-d-opt} [...]]
Where:  domain    is in the Domain Name System
        q-class  is one of (in,hs,ch,...) [default: in]
        q-type   is one of (a,any,mx,ns,soa,hinfo,axfr,txt,...) [default:a]
                 (Use ixfr=version for type ixfr)
        q-opt    is one of:
                 -x dot-notation     (shortcut for reverse lookups)
                 -i                  (use IP6.INT for IPv6 reverse lookups)
                 -f filename         (batch mode)
                 -b address[#port]   (bind to source address/port)
                 -p port             (specify port number)
                 -q name             (specify query name)
                 -t type             (specify query type)
                 -c class            (specify query class)
                 -k keyfile          (specify tsig key file)
                 -y [hmac:]name:key  (specify named base64 tsig key)
                 -4                  (use IPv4 query transport only)
                 -6                  (use IPv6 query transport only)
                 -m                  (enable memory usage debugging)
        d-opt    is of the form +keyword[=value], where keyword is:
                 +[no]vc             (TCP mode)
                 +[no]tcp            (TCP mode, alternate syntax)
                 +time=###           (Set query timeout) [5]
                 +tries=###          (Set number of UDP attempts) [3]
                 +retry=###          (Set number of UDP retries) [2]
                 +domain=###         (Set default domainname)
                 +bufsize=###        (Set EDNS0 Max UDP packet size)
                 +ndots=###          (Set NDOTS value)
                 +edns=###           (Set EDNS version)
                 +[no]search         (Set whether to use searchlist)
                 +[no]showsearch     (Search with intermediate results)
                 +[no]defname        (Ditto)
                 +[no]recurse        (Recursive mode)
                 +[no]ignore         (Don't revert to TCP for TC responses.)
                 +[no]fail           (Don't try next server on SERVFAIL)
                 +[no]besteffort     (Try to parse even illegal messages)
                 +[no]aaonly         (Set AA flag in query (+[no]aaflag))
                 +[no]adflag         (Set AD flag in query)
                 +[no]cdflag         (Set CD flag in query)
                 +[no]cl             (Control display of class in records)
                 +[no]cmd            (Control display of command line)
                 +[no]comments       (Control display of comment lines)
                 +[no]question       (Control display of question)
                 +[no]answer         (Control display of answer)
                 +[no]authority      (Control display of authority)
                 +[no]additional     (Control display of additional)
                 +[no]stats          (Control display of statistics)
                 +[no]short          (Disable everything except short
                                      form of answer)
                 +[no]ttlid          (Control display of ttls in records)
                 +[no]all            (Set or clear all display flags)
                 +[no]qr             (Print question before sending)
                 +[no]nssearch       (Search all authoritative nameservers)
                 +[no]identify       (ID responders in short answers)
                 +[no]trace          (Trace delegation down from root)
                 +[no]dnssec         (Request DNSSEC records)
                 +[no]nsid           (Request Name Server ID)
                 +[no]multiline      (Print records in an expanded format)
                 +[no]onesoa         (AXFR prints only one soa record)
        global d-opts and servers (before host name) affect all queries.
        local d-opts and servers (after host name) affect only that lookup.
        -h                           (print help and exit)
        -v                           (print version and exit)

Fixes issue #

TODOs:

  • Changes to fish usage are reflected in user documenation/manpages.
  • Tests have been added for regressions fixed
@faho

This comment has been minimized.

Show comment
Hide comment
@faho

faho Oct 26, 2016

Member

For now +tries=### +retry=### +domain=### +bufsize=### +ndots=### +edns=### are missing as I'n not sure how to handle this properly.

Something like

function __fish_complete_dig
    set -l token (commandline -ct)
    switch $token
        case "+tries=*" "+retry=*" # ...
            printf '%s\n' $token(seq 0 50)
    end
end
complete -c dig -a '+tries=' -d 'Set number of UDP attempts'
complete -c dig -a '(__fish_complete_dig)'

?

This is assuming that 'dig +tries 50' is invalid.

Member

faho commented Oct 26, 2016

For now +tries=### +retry=### +domain=### +bufsize=### +ndots=### +edns=### are missing as I'n not sure how to handle this properly.

Something like

function __fish_complete_dig
    set -l token (commandline -ct)
    switch $token
        case "+tries=*" "+retry=*" # ...
            printf '%s\n' $token(seq 0 50)
    end
end
complete -c dig -a '+tries=' -d 'Set number of UDP attempts'
complete -c dig -a '(__fish_complete_dig)'

?

This is assuming that 'dig +tries 50' is invalid.

@elnappo

This comment has been minimized.

Show comment
Hide comment
@elnappo

elnappo Nov 4, 2016

Contributor

Sorry for the late reply. Done :)

Contributor

elnappo commented Nov 4, 2016

Sorry for the late reply. Done :)

@faho faho added this to the next-2.x milestone Nov 4, 2016

@faho faho merged commit 097d224 into fish-shell:master Nov 4, 2016

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
@faho

This comment has been minimized.

Show comment
Hide comment
@faho

faho Nov 4, 2016

Member

Merged, thanks!

Member

faho commented Nov 4, 2016

Merged, thanks!

@elnappo elnappo deleted the elnappo:dig-completion branch Nov 5, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment