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
|
#!/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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue