. /opt/arpl/include/consts.sh . /opt/arpl/include/configFile.sh ############################################################################### # Read key value from model config file # 1 - Model # 2 - Key # Return Value function readModelKey() { readConfigKey "${2}" "${MODEL_CONFIG_PATH}/${1}.yml" } ############################################################################### # Read Entries as map(key=value) from model config # 1 - Model # 2 - Path of key # Returns map of values function readModelMap() { readConfigMap "${2}" "${MODEL_CONFIG_PATH}/${1}.yml" } ############################################################################### # Read an array from model config # 1 - Model # 2 - Path of key # Returns array/map of values function readModelArray() { readConfigArray "${2}" "${MODEL_CONFIG_PATH}/${1}.yml" } ############################################################################### # Check if loader is fully configured # Returns 1 if not function loaderIsConfigured() { SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`" [ -z "${SN}" ] && return 1 [ ! -f "${MOD_ZIMAGE_FILE}" ] && return 1 [ ! -f "${MOD_RDGZ_FILE}" ] && return 1 return 0 # OK } ############################################################################### # Just show error message and dies function die() { echo -e "\033[1;41m$@\033[0m" exit 1 } ############################################################################### # Show error message with log content and dies function dieLog() { echo -en "\n\033[1;41mUNRECOVERY ERROR: " cat "${LOG_FILE}" echo -e "\033[0m" sleep 3 exit 1 } ############################################################################### # Generate a number with 6 digits from 1 to 30000 function random() { printf "%06d" $(($RANDOM %30000 +1 )) } ############################################################################### # Generate a hexa number from 0x00 to 0xFF function randomhex() { printf "&02X" "$(( $RANDOM %255 +1 ))" } ############################################################################### # Generate a random letter function generateRandomLetter() { for i in A B C D E F G H J K L M N P Q R S T V W X Y Z; do echo $i done | sort -R | tail -1 } ############################################################################### # Generate a random digit (0-9A-Z) function generateRandomValue() { for i in 0 1 2 3 4 5 6 7 8 9 A B C D E F G H J K L M N P Q R S T V W X Y Z; do echo $i done | sort -R | tail -1 } ############################################################################### # Generate a random serial number for a model # 1 - Model # Returns serial number function generateSerial() { SERIAL="`readModelArray "${1}" "serial.prefix" | sort -R | tail -1`" SERIAL+=`readModelKey "${1}" "serial.middle"` case "`readModelKey "${1}" "serial.suffix"`" in numeric) SERIAL+=$(random) ;; alpha) SERIAL+=$(generateRandomLetter)$(generateRandomValue)$(generateRandomValue)$(generateRandomValue)$(generateRandomValue)$(generateRandomLetter) ;; esac echo ${SERIAL} } ############################################################################### # Validate a serial number for a model # 1 - Model # 2 - Serial number to test # Returns 1 if serial number is valid function validateSerial() { PREFIX=`readModelArray "${1}" "serial.prefix"` MIDDLE=`readModelKey "${1}" "serial.middle"` S=${2:0:4} P=${2:4:3} L=${#2} if [ ${L} -ne 13 ]; then echo 0 return fi echo ${PREFIX} | grep -q ${S} if [ $? -eq 1 ]; then echo 0 return fi if [ "${MIDDLE}" != "${P}" ]; then echo 0 return fi echo 1 } ############################################################################### # Check if a item exists into array # 1 - Item # 2.. - Array # Return 0 if exists function arrayExistItem() { EXISTS=1 ITEM="${1}" shift for i in "$@"; do [ "${i}" = "${ITEM}" ] || continue EXISTS=0 break done return ${EXISTS} } ############################################################################### # Replace/remove/add values in .conf K=V file # 1 - name # 2 - new_val # 3 - path function _set_conf_kv() { # Delete if [ -z "$2" ]; then sed -i "$3" -e "s/^$1=.*$//" return $?; fi # Replace if grep -q "^$1=" "$3"; then sed -i "$3" -e "s\"^$1=.*\"$1=\\\"$2\\\"\"" return $? fi # Add if doesn't exist echo "$1=\"$2\"" >> $3 }