#!/bin/sh ########################################################################### # # Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. # # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN # WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # # @file globals.sh # # @author (last) Behrouz NematiPour # @date (last) 14-Dec-2022 # @author (original) Behrouz NematiPour # @date (original) 14-Dec-2022 ############################################################################ # @details # This script includes the global variables and functions to be used in the setup and start scripts. TRUE=1 FALSE=0 COMMENT_STAR="********************************************************************************" COMMENT_DASH="--------------------------------------------------------------------------------" DATETIME="$1 $2" #DO NOT MODIFY VARIABLES, unless the denali applicaiton is updated as well to match. SDCARD_DEV=/dev/mmcblk1 SDCARD_PRT=/dev/mmcblk1p1 SDCARD_MNT=/media/sd-card SDCARD_TYP_NAME=ext4 SDCARD_TYP_NUMB=83 USB_DEV=/dev/sda1 USB_MNT=/media/usb CLOUDSYNC_FOLDER=cloudsync # both for log and application LOG_LOCATION=$HOME/Desktop LOG_OUT_FILE="" LOG_ERR_FILE="" ERR_MISSING_FOLDER=101 ERR_MISSING_FILE=102 ERR_CONNECTION=103 ERR_DENALI_BIN=104 ERR_FONTS_EMTY=105 ERR_FONTS_PATH=106 ERR_KILLPROMPT=107 ERR_MISSING_KEY=109 ERR_SCP_FAIL=110 ERR_INVALID_IP=111 ERR_SD_CARD=112 SRC_FILE_SSHKEY="$HOME/.ssh/id_rsa" SRC_FILE_SSHKEY_PUB=$SRC_FILE_SSHKEY.pub SRC_PATH_SCRIPTS="scripts" SRC_PATH_CONFIG="settings" SRC_PATH_CLOUDSYNC="cloudsync" SRC_PATH_FONTS="fonts" DST_IP="" DST_USER=root DST_PATH_CONFIG="/home/$DST_USER/.config" DST_PATH_HOME="/home/$DST_USER" DST_PATH_SCRIPTS="/home/$DST_USER/scripts" DST_PATH_CLOUDSYNC="/home/$DST_USER/cloudsync" DST_PATH_FONTS="/usr/share/fonts/truetype" POSTLOG=$HOME/post.log POSTERR=$HOME/post.err POSTOUT=$HOME/post.out POSTMSG_POSTFIX_PASSED=" passed" POSTMSG_POSTFIX_FAILED=" failed" POSTMSG_CANBUS="CANBus" POSTMSG_SDCARD="SD-CARD" POSTMSG_TOUCH="Touch" POSTMSG_RTC="RTC" POSTMSG_WIFI="WiFi" POSTMSG_BLUETOOTH="Bluetooth" POSTMSG_SHASUM="App shasum" POSTMSG_CLOUDSYNC="CloudSync" POSTMSG_CLOUDSYNC_RUNNING="CloudSync app IS running" TDCTL_NTP_USED=$FALSE TDCTL_RTC_LOCL=$TRUE TDCTL_TIMEZONE=America/Los_Angeles IP_SEG_MAX_LEN=3 IP_EMT="192.168.10." SSH_PARAM="-oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no -oLogLevel=ERROR -oConnectTimeout=2" CMD_RTC_EPOCH="cat /sys/class/rtc/rtc0/since_epoch" CMD_SDCARD_DEV="ls $SDCARD_DEV" CMD_SDCARD_PRT="ls $SDCARD_PRT" CMD_LINUX_TYPE="sfdisk --part-type $SDCARD_DEV 1" INITD_LOCATION=/etc/init.d/ INITD_AUTOSTART=autostart DENALI_BIN=denali LAUNCH_SCR=run.sh function confirm() { read -p "$1? [y,n]" -n 1 -r CONTINUE if [ "$CONTINUE" == "y" ]; then echo "" return $TRUE else echo "" return $FALSE fi } string_trim() { local var="$*" # remove leading whitespace characters var="${var#"${var%%[![:space:]]*}"}" # remove trailing whitespace characters var="${var%"${var##*[![:space:]]}"}" printf '%s' "$var" } function echo_star_comment() { echo "$COMMENT_STAR"" $1 " } function echo_star_message() { echo " * $1" } function echo_dash_comment() { echo "$COMMENT_DASH"" $1 " } function echo_dash_message() { echo " $1" } function timestamp() { echo $(date +"%Y%m%d-%H%M%S") } function validIP() { local ip=$1 if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then OIFS=$IFS IFS='.' ip=($ip) IFS=$OIFS if [[ ${ip[0]} -gt 255 && \ ${ip[1]} -gt 255 && \ ${ip[2]} -gt 255 && \ ${ip[3]} -gt 255 ]]; then return $ERR_INVALID_IP fi else return $ERR_INVALID_IP fi return 0 } function existsFolder() { if [ ! -d "$1" ]; then return "$ERR_MISSING_FOLDER" fi } function existsFile() { if [ ! -f "$1" ]; then return "$ERR_MISSING_FILE" fi } COUT="/dev/null" function post_log_clear () { echo "" > $POSTLOG; } function post_err_clear () { echo "" > $POSTERR; } function post_out_clear () { echo "" > $POSTOUT; } function post_log_pass () { echo "$1" >> $POSTLOG; echo "[ OK ] $1" > "$COUT"; } function post_log_fail () { echo "$1" >> $POSTLOG; echo "[FAILED] $1" > "$COUT"; } function post_log_dash () { echo "$COMMENT_DASH$1" >> $POSTLOG; echo "$COMMENT_DASH$1" > "$COUT"; } function post_log_star () { echo "$COMMENT_DASH$1" >> $POSTLOG; echo "$COMMENT_STAR$1" > "$COUT"; } function post_log () { echo "$1" >> $POSTLOG; echo " $1" > "$COUT"; } function post_err () { echo "$1" >> $POSTERR; } function post_err_dash () { echo "$COMMENT_DASH$1" >> $POSTERR; } function post_out () { echo "$1" >> $POSTOUT; } function post_out_dash () { echo "$COMMENT_DASH$1" >> $POSTOUT; } function debug () { echo_dash_comment echo_dash_message "$1" echo_dash_comment }