Update v2.0.0
Add features : - Custom gereration - Export - Documentation
This commit is contained in:
parent
eefacb587b
commit
1e4a81391a
1 changed files with 271 additions and 15 deletions
|
|
@ -1,20 +1,35 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Variables des couleurs
|
||||
|
||||
|
||||
# Color variables
|
||||
neutre='\e[0;m'
|
||||
jaune='\e[1;33m'
|
||||
bleuclair='\e[1;34m'
|
||||
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 "▌ █▌▄▌▄▌ ▙▌▙▖▌▌▙▖▌ █▌▐▖▙▌▌ "
|
||||
echo -e "▄▖ ▄▖ ▗ "
|
||||
echo -e "▙▌▀▌▛▘▛▘▄▖▌ █▌▛▌█▌▛▘▀▌▜▘▛▌▛▘"
|
||||
echo -e "▌ █▌▄▌▄▌ ▙▌▙▖▌▌▙▖▌ █▌▐▖▙▌▌$rouge v2.0.0 $neutre"
|
||||
echo
|
||||
echo -e "$jaune╭ License ─────────────────────────────╮"
|
||||
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
|
||||
|
||||
# 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
|
||||
read -p "> Number of iterations ($(echo -e $bleuclair"default 5"$neutre))? " nb2
|
||||
# Character variables
|
||||
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" = "" ];
|
||||
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
|
||||
done
|
||||
|
||||
|
||||
|
||||
# Number of iterations
|
||||
while true; do
|
||||
read -p "> Number of iterations ? ($(echo -e $bleuclair"default 5"$neutre)) " nb2
|
||||
if [ "$nb2" = "" ];
|
||||
then
|
||||
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
|
||||
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 -e "$vertclair--------------------$neutre"
|
||||
generate
|
||||
echo -e "$vertclair--------------------$neutre"
|
||||
read -p "Choice your option ? " choice
|
||||
echo
|
||||
|
||||
case "$choice" in
|
||||
1) default ;;
|
||||
2) custom ;;
|
||||
3) help ;;
|
||||
4) exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue