Update v2.0.0

Add features :
- Custom gereration
- Export
- Documentation
This commit is contained in:
Willy 2025-12-12 23:24:07 +01:00
parent eefacb587b
commit 1e4a81391a

View file

@ -1,20 +1,35 @@
#!/bin/bash #!/bin/bash
# Variables des couleurs
# Color variables
neutre='\e[0;m' neutre='\e[0;m'
jaune='\e[1;33m' jaune='\e[1;33m'
bleuclair='\e[1;34m' bleuclair='\e[1;34m'
vertclair='\e[1;32m' vertclair='\e[1;32m'
rouge='\e[1;31m'
# Declaration de la fonction de generation
function generate() {
</dev/urandom tr -dc '!@#$%&*=|<>~()_A-Z-a-z-0-9'| fold -w$nb1 | head -$nb2 # Declaration of the variable "line"
function line() {
echo -e "$vertclair--------------------$neutre"
} }
# Declaration of the variable "customline"
function customline() {
printf -v ligne '%*s' "$nb1" '' ; echo -e "$vertclair${ligne// /-}$neutre"
}
# Name and license
echo echo
echo "▄▖ ▄▖ ▗ " echo -e "▄▖ ▄▖ ▗ "
echo "▙▌▀▌▛▘▛▘▄▖▌ █▌▛▌█▌▛▘▀▌▜▘▛▌▛▘" echo -e "▙▌▀▌▛▘▛▘▄▖▌ █▌▛▌█▌▛▘▀▌▜▘▛▌▛▘"
echo "▌ █▌▄▌▄▌ ▙▌▙▖▌▌▙▖▌ █▌▐▖▙▌▌ " echo -e "▌ █▌▄▌▄▌ ▙▌▙▖▌▌▙▖▌ █▌▐▖▙▌▌$rouge v2.0.0 $neutre"
echo echo
echo -e "$jaune╭ License ─────────────────────────────╮" echo -e "$jaune╭ License ─────────────────────────────╮"
echo -e "$neutre Coded by Willy from Self IT Deploy $jaune" echo -e "$neutre Coded by Willy from Self IT Deploy $jaune"
@ -22,27 +37,268 @@ echo -e "│ $neutre CC BY-NC-SA 4.0 $jaune │"
echo -e "╰──────────────────────────────────────╯ $neutre" echo -e "╰──────────────────────────────────────╯ $neutre"
echo echo
# Demande a l utilisateur le nombre de caratere, par défaut 20
read -p "> Number of characters ($(echo -e $bleuclair"default 20"$neutre))? " nb1
# Demande a l utilisateur le nombre d iteration, par défaut 5 # Character variables
read -p "> Number of iterations ($(echo -e $bleuclair"default 5"$neutre))? " nb2 lowercase='a-z'
uppercase='A-Z'
numbers='0-9'
specials='!@#$%&*=|<>~()_{}[]+.'
# Declaration of the "default" function
function default() {
line
</dev/urandom tr -dc "$specials$uppercase$lowercase$numbers"| fold -w20 | head -5
line
}
# Declaration of the "custom" function
function custom() {
# Number of characters
while true; do
read -p "> Number of characters ? ($(echo -e $bleuclair"default 20"$neutre)) " nb1
if [ "$nb1" = "" ]; if [ "$nb1" = "" ];
then then
nb1=20; nb1=20
break
elif [[ ! "$nb1" =~ ^[0-9]+$ ]];
then
echo
echo "Invalid data"
echo
elif [[ "$nb1" -le 0 ]];
then
echo
echo "Invalid data"
echo
else
break
fi fi
done
# Number of iterations
while true; do
read -p "> Number of iterations ? ($(echo -e $bleuclair"default 5"$neutre)) " nb2
if [ "$nb2" = "" ]; if [ "$nb2" = "" ];
then then
nb2=5; nb2=5;
break
elif [[ ! "$nb2" =~ ^[0-9]+$ ]];
then
echo
echo "Invalid data"
echo
elif [[ "$nb2" -le 0 ]];
then
echo
echo "Invalid data"
echo
else
break
fi fi
done
while true; do
# Enable lowercase
while true; do
read -p "> Enable lowercase ? ($(echo -e $bleuclair"Y/n"$neutre)) " low
if [ "$low" = "Y" ] || [ "$low" = "y" ] || [ "$low" = "" ];
then
varlow=$lowercase
break
elif [ "$low" = "N" ] || [ "$low" = "n" ];
then
varlow=""
break
else
echo
echo "Invalid data"
echo
fi
done
# Enable uppercase
while true; do
read -p "> Enable uppercase ? ($(echo -e $bleuclair"Y/n"$neutre)) " upp
if [ "$upp" = "Y" ] || [ "$upp" = "y" ] || [ "$upp" = "" ];
then
varupp=$uppercase
break
elif [ "$upp" = "N" ] || [ "$upp" = "n" ];
then
varupp=""
break
else
echo
echo "Invalid data"
echo
fi
done
# Enable numbers
while true; do
read -p "> Enable numbers ? ($(echo -e $bleuclair"Y/n"$neutre)) " num
if [ "$num" = "Y" ] || [ "$num" = "y" ] || [ "$num" = "" ];
then
varnum=$numbers
break
elif [ "$num" = "N" ] || [ "$num" = "n" ];
then
varnum=""
break
else
echo
echo "Invalid data"
echo
fi
done
# Enable specials
while true; do
read -p "> Enable specials ? ($(echo -e $bleuclair"Y/n"$neutre)) " spe
if [ "$spe" = "Y" ] || [ "$spe" = "y" ] || [ "$spe" = "" ];
then
varspe=$specials
break
elif [ "$spe" = "N" ] || [ "$spe" = "n" ];
then
varspe=""
break
else
echo
echo "Invalid data"
echo
fi
done
if [ -n "${varlow}" ] || [ -n "${varupp}" ] || [ -n "${varnum}" ] || [ -n "${varspe}" ];
then
break
else
echo
echo "No character was selected"
echo
fi
done
# Declaration of the "customgenerate" function
function customgenerate() {
</dev/urandom tr -dc "$varspe$varupp$varlow$varnum"| fold -w$nb1 | head -$nb2
}
# Export
while true; do
read -p "> Export generation ? ($(echo -e $bleuclair"y/N"$neutre)) " exp
if [ "$exp" = "N" ] || [ "$exp" = "n" ] || [ "$exp" = "" ];
then
echo
customline
customgenerate
customline
break
elif [ "$exp" = "Y" ] || [ "$exp" = "y" ];
then
echo
read -p "> Choose location ? (Relative/Absolute ex: ./list.txt) " location
echo
customline
customgenerate | tee -a $location
customline
break
else
echo
echo "Invalid data"
echo
fi
done
}
# Declaration of the "help" function
function help() {
cat << EOF
╭─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ ▄▖ ▄▖ ▗ │
│ ▙▌▀▌▛▘▛▘▄▖▌ █▌▛▌█▌▛▘▀▌▜▘▛▌▛▘ │
│ ▌ █▌▄▌▄▌ ▙▌▙▖▌▌▙▖▌ █▌▐▖▙▌▌ v2.0.0 │
│ │
│ ╭ License ─────────────────────────────╮ │
│ │ Coded by Willy from Self IT Deploy │ │
│ │ CC BY-NC-SA 4.0 │ │
│ ╰──────────────────────────────────────╯ │
│ │
│ > List of available characters │
│ lowercase "a-z"
│ uppercase "A-Z"
│ numbers "0-9"
│ specials "!@#$%&*=|<>~()_{}[]+."
│ │
│ > Choice 1 - Default generation │
│ Default generation of 5 iterations of 20 characters, │
│ including all supported characters. │
│ │
│ > Choice 2 - Custom generation │
│ Custom generation with choice of iteration quantities and characters, │
│ the possibility to activate or not a character type as well as export to an external file. │
│ │
│ Press enter for default choice. │
│ If (Y/n) then, default yes (accept Y & y). │
│ If (y/N) then, default no (accept N & n). │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────╯
EOF
}
# Menu principal
while true; do
echo
echo -e "1 - Default generation"
echo -e "2 - Custom generation"
echo -e "3 - Help"
echo -e "4 - Exit"
echo echo
echo -e "$vertclair--------------------$neutre" read -p "Choice your option ? " choice
generate
echo -e "$vertclair--------------------$neutre"
echo echo
case "$choice" in
1) default ;;
2) custom ;;
3) help ;;
4) exit 1 ;;
esac
done