Tous les modules utilisés sont désormais déportés sur framagit; modification des alias en conséquence (sauf ceux concernant les pdf)

This commit is contained in:
Benjamin VAUDOUR 2021-12-27 17:54:26 +00:00
parent 8c138abe1a
commit 3c990f7cff
16 changed files with 163 additions and 191 deletions

View file

@ -1,94 +1,67 @@
use str
use re
edit:add-var genstr~ {|@argv|
use re
use str
fn -bytes {|begin size|
str:from-codepoints (range $begin (+ $begin $size))
}
fn j {|@strings| str:join '' $strings}
fn bytes {|begin size| str:from-codepoints (range $begin (+ $begin $size))}
fn upper { bytes 0x41 26 }
fn lower { bytes 0x61 26 }
fn digit { bytes 0x30 10 }
fn alpha { j (upper) (lower) }
fn alphanum { j (alpha) (digit) }
fn -upper {||
-bytes 0x41 26
}
fn random {|chars|
var size = (count $chars)
print $chars[(randint 0 $size)]
}
fn is-int {|arg| re:match '^\d+$' $arg}
fn -lower {||
-bytes 0x61 26
}
fn help {||
echo 'Génère une chaîne de caractères aléatoires'
echo 'Usage: genstr [(-auldh)] [<chars>] [<size>]'
echo ''
echo 'Options:'
echo ' -a Uniquement des lettres ([A-Za-z])'
echo ' -u Uniquement des lettres majuscules ([A-Z])'
echo ' -l Uniquement des lettres minuscules ([a-z])'
echo ' -d Uniquement des chiffres ([0-9])'
echo ''
echo '<chars> Liste de caractères possibles'
echo '<size> Longueur de la chaîne (par défaut: 10)'
echo ''
echo 'Si aucune classe de caractères ou liste de caractères nest fournie, utilise les caractères alphanumériques ([A-Za-z0-9]).'
}
fn -digit {||
-bytes 0x30 10
}
fn -j {|@strings|
str:join '' $strings
}
fn -alpha {||
-j (-upper) (-lower)
}
fn -alphanum {||
-j (-alpha) (-digit)
}
fn -random {|chars|
var size = (count $chars)
print $chars[(randint 0 $size)]
}
fn -is-int {|arg|
re:match '^\d+$' $arg
}
fn -help {||
echo 'Génère une chaîne de caractères aléatoires'
echo 'Usage: genstr [(-auldh)] [<chars>] [<size>]'
echo ''
echo 'Options:'
echo ' -a Uniquement des lettres ([A-Za-z])'
echo ' -u Uniquement des lettres majuscules ([A-Z])'
echo ' -l Uniquement des lettres minuscules ([a-z])'
echo ' -d Uniquement des chiffres ([0-9])'
echo ''
echo '<chars> Liste de caractères possibles'
echo '<size> Longueur de la chaîne (par défaut: 10)'
echo ''
echo 'Si aucune classe de caractères ou liste de caractères nest fournie, utilise les caractères alphanumériques ([A-Za-z0-9]).'
}
edit:add-var genstr~ {|@args|
var len chars h = 0 '' $false
each {|e|
if (or (eq $e -h) (eq $e --help)) {
set h = $true
-help
help
break
} elif (eq $e -a) {
set chars = (-j $chars (-alpha))
set chars = (j $chars (alpha))
} elif (eq $e -u) {
set chars = (-j $chars (-upper))
set chars = (j $chars (upper))
} elif (eq $e -l) {
set chars = (-j $chars (-lower))
set chars = (j $chars (lower))
} elif (eq $e -d) {
set chars = (-j $chars (-digit))
} elif (and (-is-int $e) (> $e 0)) {
set chars = (j $chars (digit))
} elif (and (is-int $e) (> $e 0)) {
set len = $e
} else {
set chars = (-j $chars $e)
set chars = (j $chars $e)
}
} $args
} $argv
if (not $h) {
if (== $len 0) {
set len = 10
}
if (eq $chars '') {
set chars = (-alphanum)
}
set chars = [(str:split '' $chars)]
range $len | each {|_|
-random $chars
set chars = (alphanum)
}
set @chars = (str:split '' $chars)
range $len | each {|_| random $chars}
echo
}
}