1
0
mirror of https://github.com/deajan/obackup.git synced 2024-11-15 04:03:41 +01:00

Quicker PoorMansRandomGenerator function + shellcheck fixes

This commit is contained in:
deajan 2018-10-01 15:12:16 +02:00
parent 512bf8e5a4
commit f4525f0f13

View File

@ -8,7 +8,7 @@
#### OFUNCTIONS FULL SUBSET #### #### OFUNCTIONS FULL SUBSET ####
#### OFUNCTIONS MINI SUBSET #### #### OFUNCTIONS MINI SUBSET ####
_OFUNCTIONS_VERSION=2.3.0-RC1 _OFUNCTIONS_VERSION=2.3.0-RC1
_OFUNCTIONS_BUILD=2018093003 _OFUNCTIONS_BUILD=2018100105
#### _OFUNCTIONS_BOOTSTRAP SUBSET #### #### _OFUNCTIONS_BOOTSTRAP SUBSET ####
_OFUNCTIONS_BOOTSTRAP=true _OFUNCTIONS_BOOTSTRAP=true
#### _OFUNCTIONS_BOOTSTRAP SUBSET END #### #### _OFUNCTIONS_BOOTSTRAP SUBSET END ####
@ -106,37 +106,16 @@ fi
# Get a random number on Windows BusyBox alike, also works on most Unixes # Get a random number on Windows BusyBox alike, also works on most Unixes
function PoorMansRandomGenerator { function PoorMansRandomGenerator {
local digits="${1}" # The number of digits to generate local digits="${1}" # The number of digits to generate
local number
local minimum=1 # Some read bytes can't be used, se we read twice the number of required bytes
local maximum dd if=/dev/urandom bs=$digits count=2 2> /dev/null | while read -r -n1 char; do
local n=0 number=$number$(printf "%d" "'$char")
if [ ${#number} -ge $digits ]; then
if [ "$digits" == "" ]; then echo ${number:0:$digits}
digits=5 break;
fi
# Minimum already has a digit
for n in $(seq 1 $((digits-1))); do
minimum=$minimum"0"
maximum=$maximum"9"
done
maximum=$maximum"9"
#n=0; while [ $n -lt $minimum ]; do n=$n$(dd if=/dev/urandom bs=100 count=1 2>/dev/null | tr -cd '0-9'); done; n=$(echo $n | sed -e 's/^0//')
# bs=19 since if real random strikes, having a 19 digits number is not supported
while [ $n -lt $minimum ] || [ $n -gt $maximum ]; do
if [ $n -lt $minimum ]; then
# Add numbers
n=$n$(dd if=/dev/urandom bs=19 count=1 2>/dev/null | tr -cd '0-9')
n=$(echo $n | sed -e 's/^0//')
if [ "$n" == "" ]; then
n=0
fi
elif [ $n -gt $maximum ]; then
n=$(echo $n | sed 's/.$//')
fi fi
done done
echo $n
} }
#### PoorMansRandomGenerator SUBSET END #### #### PoorMansRandomGenerator SUBSET END ####
@ -1885,9 +1864,9 @@ function RsyncPatternsAdd {
rest="${rest#*$PATH_SEPARATOR_CHAR}" rest="${rest#*$PATH_SEPARATOR_CHAR}"
fi fi
if [ "$RSYNC_PATTERNS" == "" ]; then if [ "$RSYNC_PATTERNS" == "" ]; then
RSYNC_PATTERNS="--"$patternType"=\"$str\"" RSYNC_PATTERNS="--$patternType=\"$str\""
else else
RSYNC_PATTERNS="$RSYNC_PATTERNS --"$patternType"=\"$str\"" RSYNC_PATTERNS="$RSYNC_PATTERNS --$patternType=\"$str\""
fi fi
done done
set +f set +f
@ -1904,7 +1883,7 @@ function RsyncPatternsFromAdd {
fi fi
if [ -e "$patternFrom" ]; then if [ -e "$patternFrom" ]; then
RSYNC_PATTERNS="$RSYNC_PATTERNS --"$patternType"-from=\"$patternFrom\"" RSYNC_PATTERNS="$RSYNC_PATTERNS --$patternType-from=\"$patternFrom\""
fi fi
} }
@ -2229,7 +2208,7 @@ function VerComp () {
return 1 return 1
fi fi
if [[ $1 == $2 ]] if [[ "$1" == "$2" ]]
then then
echo 0 echo 0
return return