Ajout des fichiers manquants
This commit is contained in:
parent
ff9cefd28f
commit
62ebf74ebe
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
lib/github.com
|
||||
private
|
26
aliases/addbadips.elv
Normal file
26
aliases/addbadips.elv
Normal 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
11
aliases/adguard.elv
Normal 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
16
aliases/aliases.elv
Normal 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
36
aliases/cleankh.elv
Normal 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
20
aliases/commitkcp.elv
Normal 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
49
aliases/get-uid.elv
Normal 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
19
aliases/ipinfo.elv
Normal 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
104
aliases/ipof.elv
Normal 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
6
aliases/listarchiver.elv
Normal 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
82
aliases/pdf2grey.elv
Normal 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 'L’argument (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 d’arguments: '$@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
11
aliases/sendsms.elv
Normal 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
2
aliases/translate.elv
Normal 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 }
|
16
aliases/vivaldiprofile.elv
Normal file
16
aliases/vivaldiprofile.elv
Normal 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
6
lib/moi/alias.elv
Normal file
@ -0,0 +1,6 @@
|
||||
local:dir = ~/.config/elvish/aliases
|
||||
|
||||
for file [(_ = ?(put $dir/*.elv))] {
|
||||
content = (cat $file | slurp)
|
||||
eval $content
|
||||
}
|
24
lib/moi/completion/use.elv
Normal file
24
lib/moi/completion/use.elv
Normal 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
42
lib/moi/util/common.elv
Normal 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 }
|
Loading…
Reference in New Issue
Block a user