Ajout des fichiers manquants

This commit is contained in:
Benjamin VAUDOUR 2021-08-24 20:45:25 +02:00
parent ff9cefd28f
commit 62ebf74ebe
17 changed files with 472 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
lib/github.com
private

26
aliases/addbadips.elv Normal file
View File

@ -0,0 +1,26 @@
edit:add-var addbadips~ [@argv]{
use moi/util/ip
use moi/util/list
use moi/util/map
use str
local:f = ~/bad_ips.txt
local:ips = [ (cat $f) ]
local:m = (map:to-set $ips)
local:c = 0
each [e]{
local:cond = (and (not (has-key $m $e)) (ip:is-ipv4 $e))
if $cond {
echo $e ajoutée
c = (+ $c 1)
m[$e] = $nil
ips = [ (all $ips) $e ]
}
} $argv
if (> $c 0) {
ips = [ (list:sort $ip:cmp4~ $ips) ]
}
local:result = (str:join "\n" $ips)
echo $result > $f
echo $c' IPs ajoutées ('(count $ips)' au total)'
}

11
aliases/adguard.elv Normal file
View File

@ -0,0 +1,11 @@
edit:add-var adguard~ [@argv]{
use str
sudo chattr -i /etc/resolv.conf
local:beg = 's|^.*\(192\.168\.0\.25\)|'
local:end = 'nameserver \1|'
if (and (> (count $argv) 0) (str:has-prefix $argv[0] u)) {
end = '# '$end
}
sudo sed -i $beg$end /etc/resolv.conf
sudo chattr +i /etc/resolv.conf
}

16
aliases/aliases.elv Normal file
View File

@ -0,0 +1,16 @@
edit:add-var cat~ [@argv]{ e:bat -pp --tabs 2 $@argv }
edit:add-var cp~ [@argv]{ e:cp -iv $@argv }
edit:add-var curl~ $e:curlie~
edit:add-var df~ $e:duf~
edit:add-var diff~ $e:colordiff~
edit:add-var dig~ [@argv]{ e:dig +noall +answer $@argv }
edit:add-var dogall~ [@argv]{ e:dog A AAAA CNAME $@argv }
edit:add-var du~ [@argv]{ e:du -h $@argv }
edit:add-var git~ $e:hub~
edit:add-var grep~ [@argv]{ e:grep --color=tty -d skip $@argv }
edit:add-var mv~ [@argv]{ e:mv -iv $@argv }
edit:add-var pf~ [@argv]{ e:pkgfile -vri $@argv }
edit:add-var rm~ [@argv]{ e:rm -Iv $@argv }
edit:add-var rename~ $e:go-rename~
edit:add-var timidity~ [@argv]{ e:timidity -a -K 1 $@argv }
edit:add-var tree~ [@argv]{ e:tree -puhC --dirsfirst --du -D $@argv }

36
aliases/cleankh.elv Normal file
View File

@ -0,0 +1,36 @@
edit:add-var cleankh~ [@argv]{
use str
use moi/util/condition
use moi/util/list
use moi/util/ip
fn less [cmp e1 e2]{ < ($cmp $e1 $e2) 0 }
fn sort-host [e1 e2]{
local:i1 = (condition:cset (ip:is-ip $e1) 1 0)
local:i2 = (condition:cset (ip:is-ip $e2) 1 0)
if (!= $i1 $i2) {
< $i1 $i2
} elif (== $i1 0) {
<s $e1 $e2
} else {
less $ip:cmp~ $e1 $e2
}
}
local:khosts = [&]
cat ~/.ssh/known_hosts | eawk [_ hosts @rest]{
local:key = (str:join ' ' $rest)
if (not (has-key $khosts $key)) {
khosts[$key] = [&]
}
str:split , $hosts | each [h]{
khosts[$key][$h] = $nil
}
}
local:lines = [(keys $khosts | each [key]{
local:hosts = (keys $khosts[$key] | order &less-than=$sort-host~ | str:join ,)
put $hosts $key | str:join ' '
})]
echo (str:join "\n" $lines) > ~/.ssh/known_hosts
}

20
aliases/commitkcp.elv Normal file
View File

@ -0,0 +1,20 @@
edit:add-var commitkcp~ [@argv]{
use str
local:m = [
&name=
&ver=
]
keys $m | each [k]{
local:p = 'pkg'$k'='
m[$k] = (str:trim-prefix (cat PKGBUILD | grep $p | take 1) $p)
}
local:msg = $m[name]' '$m[ver]
if (> (count $argv) 0) {
msg = $msg' - '(str:join ' ' $argv)
}
echo "git commit -am '"$msg"' ; git push"
git commit -am $msg; git push
}

49
aliases/get-uid.elv Normal file
View File

@ -0,0 +1,49 @@
use re
use str
fn -value [v]{
local:p = (re:find '^(\d+)\((\w+)\)$' $v)
if (and (has-key $p groups) (== (count $p[groups]) 3)) {
put [
&number=$p[groups][1][text]
&text=$p[groups][2][text]
]
}
}
fn -values [v]{
local:vv = [ (str:split ',' $v) ]
if (== (count $vv) 1) {
-value $vv[0]
} else {
put [ (each $-value~ $vv) ]
}
}
fn -get-id []{
local:id = [&]
str:split ' ' (id) | each [e]{
local:p = [ (str:split '=' $e) ]
if (== (count $p) 2) {
id[$p[0]] = (-values $p[1])
}
}
put $id
}
fn -get [k]{
local:id = (-get-id)
if (has-key $id $k) {
put $id[$k]
}
}
fn -is-root []{
== (-get uid)[number] 0
}
edit:add-var get-id~ $-get-id~
edit:add-var get-uid~ []{ -get uid }
edit:add-var get-gid~ []{ -get gid }
edit:add-var get-groups~ []{ -get groups; -get groupes }
edit:add-var is-root~ $-is-root~

19
aliases/ipinfo.elv Normal file
View File

@ -0,0 +1,19 @@
edit:add-var ipinfo~ [@argv]{
use moi/util/ip
use str
local:token = (cat $E:HOME/.config/elvish/private/ipinfo_token)
fn url-of [ip]{
str:join '' [ 'ipinfo.io/' $ip '?token=' $token]
}
fn info [ip]{
if (ip:is-ip $ip) {
local:url = (url-of $ip)
echo 'URL: '$url
e:curlie $url
}
}
each $info~ $argv
}

104
aliases/ipof.elv Normal file
View File

@ -0,0 +1,104 @@
edit:add-var ipof~ [@argv]{
use str
use moi/util/condition
use moi/util/ip
fn less [cmp e1 e2]{ < ($cmp $e1 $e2) 0 }
fn sort-ip [e1 e2]{
local:i1 = (condition:cset (ip:is-ipv4 $e1) 0 (condition:cset (ip:is-ipv6 $e1) 1 2))
local:i2 = (condition:cset (ip:is-ipv4 $e2) 0 (condition:cset (ip:is-ipv6 $e2) 1 2))
if (!= $i1 $i2) {
< $i1 $i2
} elif (== $i1 2) {
<s $e1 $e2
} elif (== $i1 1) {
less $ip:cmp6~ $e1 $e2
} else {
less $ip:cmp4~ $e1 $e2
}
}
fn dnssolve [d]{
local:result = [
&ips=[&]
&resolvers=''
&txt=''
]
e:dnscrypt-proxy -config /etc/dnscrypt-proxy/dnscrypt-proxy.toml -resolve (idn -a $d) | peach [l]{
local:l = $l
local:idx = (+ (str:index $l :) 1)
local:value = (str:trim-space $l[$idx".."])
if (or (str:has-prefix $l 'IPv4 addresses') (str:has-prefix $l 'IPv6 addresses')) {
str:split ', ' $value | peach [e]{
local:e = $e
if (ip:is-ip $e) {
result[ips][$e] = $nil
}
}
} elif (str:has-prefix $l 'TXT records') {
result[txt] = $value
} elif (str:has-prefix $l 'Resolver') {
result[resolvers] = $value
} elif (str:has-prefix $l 'Name servers') {
result[remote] = (not-eq $value 'name does not exist')
}
}
put $result
}
local:hosts = [&]
cat /etc/hosts | peach [l]{
local:l = $l
l = (str:trim-space $l)
if (and (not-eq $l '') (not-eq $l[0] '#')) {
put $l
}
} | eawk [_ ip @domains]{
peach [d]{
local:d = $d
if (has-key $hosts $d) {
hosts[$d][$ip] = $nil
} else {
hosts[$d] = [&$ip=$nil]
}
} $domains
}
local:remote = [&]
peach [d]{
local:d = $d
local:solve = (dnssolve $d)
if (> (keys $solve[ips] | count) 0) {
remote[$d] = $solve
}
} $argv
each [d]{
local:exists = $false
echo (styled 'Resolving '$d'…' bright-green)
echo
if (has-key $hosts $d) {
exists = $true
echo (styled ' local:' bright-yellow)
keys $hosts[$d] | order &less-than=$sort-ip~ | each [ip]{
echo ' - '$ip
}
}
if (and (has-key $remote $d) $remote[$d][remote]) {
exists = $true
local:info = $remote[$d]
echo (styled ' remote:' bright-yellow)
echo ' IPs:'
keys $info[ips] | order &less-than=$sort-ip~ | each [ip]{
echo ' - '$ip
}
echo ' Resolvers: '$info[resolvers]
echo ' TXT records: '$info[txt]
}
if (not $exists) {
echo (styled 'No info found' bright-red)
}
echo
} $argv
}

6
aliases/listarchiver.elv Normal file
View File

@ -0,0 +1,6 @@
edit:add-var listarchiver~ [@argv]{
peach [f]{
local:f = $f
e:arc ls $f
} $argv
}

82
aliases/pdf2grey.elv Normal file
View File

@ -0,0 +1,82 @@
edit:add-var pdf2grey~ [@argv]{
use re
use str
local:m = [
&nb=$false
&split=50
]
fn _help []{
echo 'Usage: pdf2gray [-hn (<n>)] <input>.pdf <output>.pdf'
echo ''
echo 'Options:'
echo ' -h Affiche cette aide'
echo ' -n [0-100] Convertit en noir et blanc. Si un nombre est spécifié, indique le pourcentage de coupure (par défaut: 50)'
}
fn is_pdf [e]{
re:match '.*\.pdf$' $e
}
fn is_int [e]{
re:match '^\d+$' $e
}
fn is_split [e]{
and (>= $e 0) (<= $e 100)
}
while (> (count $argv) 0) {
local:e @argv = $@argv
if (or (eq $e '-h') (eq $e '--help')) {
_help
return
} elif (eq $e -n) {
m[nb] = $true
if (== (count $e) 0) {
echo 'Il manque des arguments après -s'
_help
return
} elif (is_int $argv[0]) {
e @argv = $@argv
if (is_split $e) {
m[split] = $e
} else {
echo 'Largument (optionnel) après -s doit être compris entre 0 et 100'
_help
return
}
}
} elif (not (is_pdf $e)) {
echo 'Argument non reconnu: '$e
_help
return
} elif (not (has-key $m input)) {
m[input] = $e
} else {
m[output] = $e
if (> (count $argv) 0) {
echo 'Trop darguments: '$@argv
_help
return
}
}
}
if (not (has-key $m input)) {
echo 'Manque le input'
_help
return
} elif (not (has-key $m output)) {
echo 'Manque le output'
_help
return
}
local:params = [-colorspace gray]
if $m[nb] {
@params = (all $params) -threshold $m[split]'%'
}
@params = $@params $m[input] $m[output]
echo 'Commande: convert '(str:join ' ' $params)
convert $@params
}

11
aliases/sendsms.elv Normal file
View File

@ -0,0 +1,11 @@
edit:add-var sendsms~ [@argv]{
use str
local:api = https://smsapi.free-mobile.fr/sendmsg
local:param = (cat $E:HOME/.config/elvish/private/freesms.json | from-json)
local:msg = (str:join '%20' $argv)
local:url = $api'?user='$param[user]'&pass='$param[password]'&msg='$msg
#put $url
curl $url
}

2
aliases/translate.elv Normal file
View File

@ -0,0 +1,2 @@
edit:add-var trsen~ [@argv]{ e:rlwrap trans -b -t en $@argv }
edit:add-var trsfr~ [@argv]{ e:rlwrap trans -b -t fr $@argv }

View File

@ -0,0 +1,16 @@
fn -sync [d1 d2]{
rsync -azh --delete --info=progress2,stats ~/.config/$d1/ ~/.config/$d2/
}
fn -save [d]{
-sync $d $d.save
}
fn -restore [d]{
-sync $d.save $d
}
edit:add-var viv-save~ []{ -save vivaldi }
edit:add-var viv-restore~ []{ -restore vivaldi }
edit:add-var vivd-save~ []{ -save vivaldi-developer }
edit:add-var vivd-restore~ []{ -restore vivaldi-developer }

6
lib/moi/alias.elv Normal file
View File

@ -0,0 +1,6 @@
local:dir = ~/.config/elvish/aliases
for file [(_ = ?(put $dir/*.elv))] {
content = (cat $file | slurp)
eval $content
}

View File

@ -0,0 +1,24 @@
local:libdir = $E:HOME/.config/elvish/lib
local:builtin_modules = [
builtin
epm
file
math
path
re
readline-binding
store
str
unix
]
edit:completion:arg-completer[use] = [@argv]{
use str
use path
all $builtin_modules
put $libdir/**.elv | each [f]{
if (path:is-regular $f) {
str:trim-prefix $f $libdir/
}
} | each [f]{ str:trim-suffix $f .elv }
}

42
lib/moi/util/common.elv Normal file
View File

@ -0,0 +1,42 @@
edit:add-var ++~ [n]{ + $n 1 }
edit:add-var --~ [n]{ + $n 1 }
edit:add-var sign~ [n]{
if (> $n 0) {
put 1
} elif (< $n 0) {
put -1
} else {
put 0
}
}
edit:add-var neg~ [n]{ * $n -1 }
edit:add-var abs~ [n]{
if (< $n 0) {
neg $n
} else {
put $n
}
}
edit:add-var sum~ [@numbers]{
local:s = 0
each [e]{ s = (+ $s e) } (to-list $numbers)
}
fn -minmax [t @numbers]{
local:l = (to-list $@numbers)
if (== (count $l) 0) {
return
}
local:m = $l[0]
each [n]{
if ($t $n $m) {
m = $n
}
} $l[1..]
put $m
}
edit:add-var min~ [@numbers]{ -minmax $'<~' $@numbers }
edit:add-var max~ [@numbers]{ -minmax $'>~' $@numbers }