Toujours plus loin dans la parallélisation – les résultats s’affichent instantanément…

This commit is contained in:
bvaudour 2020-07-22 16:35:25 +02:00
parent 541671c38d
commit 0ebaf3b5a0
2 changed files with 142 additions and 9 deletions

View file

@ -1,6 +1,7 @@
#alias:new digall e:dig ANY +noall +answer
fn digall [@_args]{
use moi/util/list
use moi/util/strutil
use str
local:default_records = [
@ -15,6 +16,11 @@ fn digall [@_args]{
NS
SOA
]
local:cols = [
[&min=24]
[&min=8]
[&min=10]
]
local:records = []
local:servers = []
local:flags = [
@ -44,21 +50,32 @@ fn digall [@_args]{
records = $default_records
}
}
fn format [results]{
eawk [_ @args]{
put [ $args[0] (all $args[2:]) ]
} $results | list:remove-duplicate | list:sort [l1 l2]{
local:c = (str:compare $l1[0] $l2[0])
if (== $c 0) {
c = (str:compare $l1[2] $l2[2])
}
} | strutil:format &col=$cols | str:join "\n"
}
fn drillr [d @args]{
local:results = [ (peach [r]{
e:drill $@args $r $d | list:filter [e]{
and (> (count $e) 2) (not (is $e[:2] ';;'))
}
} $records | list:remove-duplicate) ]
echo (str:join "\n" $results)
} $records) ]
format $results
}
fn digr [d @args]{
local:results = [ (peach [r]{
e:dig $@args $r $d $@flags
} $records | list:remove-duplicate) ]
echo (str:join "\n" $results)
} $records) ]
format $results
}
fn req [d @args]{
@ -70,21 +87,22 @@ fn digall [@_args]{
}
fn digs [s d]{
echo (styled $s bright-yellow)
put (echo (styled $s bright-yellow))
req $d $s
}
fn digd [d]{
echo (styled 'Domaine: '$d bright-green)
local:results = [ (echo (styled 'Domaine: '$d bright-green)) ]
if (> (count $servers) 0) {
each [s]{
digs $s $d
@results = $@results (digs $s $d)
} $servers
} else {
req $d
@results = $@results (req $d)
}
echo (str:join "\n" $results)
}
init
each $digd~ $domains
peach $digd~ $domains
}