Index: scripts/globals.sh =================================================================== diff -u -r89f52856ad7f91202d9c13752a904f52582c72fa -r1f3b1cbfacb8dcf008dee0a4de3c25c1281ba9cb --- scripts/globals.sh (.../globals.sh) (revision 89f52856ad7f91202d9c13752a904f52582c72fa) +++ scripts/globals.sh (.../globals.sh) (revision 1f3b1cbfacb8dcf008dee0a4de3c25c1281ba9cb) @@ -107,6 +107,14 @@ APPLICATION_PARAMS="&" +CloudSync_DRT_SERVER_IP=172.31.99.117 +CloudSync_DRT_SERVER_PORT=80 + +CLOUD_USER=cloud +CLOUD_HOME=/home/$CLOUD_USER +DENALI_USER=denali +DENALI_HOME=/home/$DENALI_USER + function confirm() { read -p "$1? [y,n]" -n 1 -r CONTINUE if [ "$CONTINUE" == "y" ]; then @@ -167,6 +175,26 @@ return 0 } +# Does the file contain a string? if +# not, add a line at end. +# If $1 not in $2 then append line $3 to end. +# $1 What to look for. +# $2 File name. +# $3 What to add. +function appendIfMissing() { + # q for quiet, F for regular string match, not -x because not full line. + # Done as one command because this is done remotely. + grep -qF $1 $2 || echo $3 >> $2 +} + + +# Remove all lines that contain $1 in file $2 then append $3. +# $1 What to look for. +# $2 File name. +function removeIfFound() { + sed -i /${1}/d $2 +} + function existsFolder() { if [ ! -d "$1" ]; then return "$ERR_MISSING_FOLDER" @@ -208,10 +236,14 @@ } +function disableRootSSH() { + local SSHD_CONFIG="/etc/ssh/sshd_config" + sudo sed -i '/PermitRootLogin/c\PermitRootLogin no' $SSHD_CONFIG +} + + function setupResolved() { echo nameserver 8.8.8.8 > /etc/resolv.conf - echo nameserver 192.168.10.20 >> /etc/resolv.conf # these need to be removed when/if the IoT WiFi doens't need them - echo nameserver 192.168.10.21 >> /etc/resolv.conf # these need to be removed when/if the IoT WiFi doens't need them systemctl start systemd-resolved.service } @@ -364,7 +396,8 @@ fi } -function testApplicationShasum() { + +function testApplicationShasum_setup() { # ----------------------------------------- Sha256Sum post_log_dash " Sha256Sum " #check the denali applicatoin checksum @@ -377,28 +410,44 @@ fi } + +function testApplicationShasum_local() { + # ----------------------------------------- Sha256Sum + post_log_dash " Sha256Sum " + #check the denali applicatoin checksum + SHA_ACT=$(tail -c 83 $DENALI_HOME/$DENALI_BIN | cut -c19-82) + SHA_EXP=$(head -c -83 $DENALI_HOME/$DENALI_BIN | sha256sum -b --tag | cut -c14-77) + if [ "$SHA_ACT" == "$SHA_EXP" ]; then + post_log_pass "$POSTMSG_SHASUM$POSTMSG_POSTFIX_PASSED" + else + post_log_fail "$POSTMSG_SHASUM$POSTMSG_POSTFIX_FAILED" + fi +} + + function testCloudSystem() { # ----------------------------------------- CloudSystem post_log_dash " CloudSystem " post_log "$(ip addr show $iwlan)" # -details -statistics - post_log "$(ping www.diality.com -I $iwlan -c 3 -4)" + post_log "$(ping www.diality.staging.kebormed.com -I $iwlan -c 3 -4)" } -function startCloudSync() { +function startCloudSync_setup() { # ----------------------------------------- CloudSync post_log_dash " CloudSync " - if [ -d $HOME/$CLOUDSYNC_FOLDER ]; then - # moving/ backing up the previous treatment logs so the new buff starts with fresh sequence - echo "Backing up CloudSync I/O buff" - CLOUDSYNC_PATH="$SDCARD_MNT"/"$CLOUDSYNC_FOLDER" - CLOUDSYNC_BACKUP="$CLOUDSYNC_PATH"_backup/$(timestamp)/ - mkdir -p $CLOUDSYNC_BACKUP - mv $CLOUDSYNC_PATH/* $CLOUDSYNC_BACKUP 1>> $POSTOUT 2>> $POSTERR - rm $HOME/$CLOUDSYNC_FOLDER/data/* 1>> $POSTOUT 2>> $POSTERR - cd $HOME/$CLOUDSYNC_FOLDER/ - python3 ./cs.py start & + local CLOUDSYNC_PATH=$HOME/$CLOUDSYNC_FOLDER + if [ -d $CLOUDSYNC_PATH ]; then + + # removing the previous treatment logs so the new buff starts with fresh sequence + echo "Removing CloudSync I/O buff" + local CLOUDSYNC_LOGS="$SDCARD_MNT/$CLOUDSYNC_FOLDER/" + rm $(find $CLOUDSYNC_LOGS -name "*[_inp,_out].buf" ) 1>> $POSTOUT 2>> $POSTERR + + echo "Executing the CloudSync" + cd $CLOUDSYNC_PATH + ./cs.py start debug & sleep 2 - CLOUDSYNC_STATUS="$(python3 ./cs.py status)" + CLOUDSYNC_STATUS="$(./cs.py status)" if [ "$CLOUDSYNC_STATUS" == "$POSTMSG_CLOUDSYNC_RUNNING" ]; then post_log_pass "$POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_PASSED" else @@ -411,15 +460,15 @@ fi } -function startApplication() { +function startApplication_setup() { # ----------------------------------------- Denali post_log_dash " Denali " #launching denali application DENALI_VERSION="$($HOME/$DENALI_BIN -v)" if [[ -n "$DENALI_VERSION" ]]; then post_log_pass "$($HOME/$DENALI_BIN -v)" # log UI Software version if [[ "$APPLICATION_PARAMS" == *"-E"* ]]; then - $HOME/$DENALI_BIN $APPLICATION_PARAMS # do not enclose the APPLICATION_PARAMS in "", then it becomes an empty parameter to the denali which is not accepted. + $HOME/$DENALI_BIN $APPLICATION_PARAMS & # do not enclose the APPLICATION_PARAMS in "", then it becomes an empty parameter to the denali which is not accepted. else $HOME/$DENALI_BIN $APPLICATION_PARAMS & fi @@ -428,6 +477,63 @@ fi } +function confirm_reboot() { + read -p "ready to reboot? [y,n]" -n 1 -r CONFIRM + if [ "$CONFIRM" == "y" ]; then + reboot + fi + echo "" +} + + +function startCloudSync_local() { + # ----------------------------------------- CloudSync + post_log_dash " CloudSync " + local CLOUDSYNC_PATH=$CLOUD_HOME/$CLOUDSYNC_FOLDER + local DATE_UTC=$(date -u +%Y_%m_%d) + if [ -d $CLOUDSYNC_PATH ]; then + + # removing the previous treatment logs so the new buff starts with fresh sequence + echo "Removing CloudSync I/O buff" + local CLOUDSYNC_LOGS="$SDCARD_MNT/$CLOUDSYNC_FOLDER/" + sudo -u $CLOUD_USER rm $(find $CLOUDSYNC_LOGS -name "*[_inp,_out].buf" ) 1>> $POSTOUT 2>> $POSTERR + + echo "Creating new bufs for the denali and cloud user" + sudo -u $CLOUD_USER touch "$CLOUDSYNC_LOGS/$DATE_UTC"_out.buf + sudo -u $DENALI_USER touch "$CLOUDSYNC_LOGS/$DATE_UTC"_inp.buf + + echo "Executing the CloudSync" + cd $CLOUDSYNC_PATH + sudo -u $CLOUD_USER ./cs.py start + sleep 2 + CLOUDSYNC_STATUS="$(sudo -u $CLOUD_USER ./cs.py status)" + if [ "$CLOUDSYNC_STATUS" == "$POSTMSG_CLOUDSYNC_RUNNING" ]; then + post_log_pass "$POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_PASSED" + else + post_log_fail "$POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_FAILED" + fi + post_log "$CLOUDSYNC_STATUS" + cd + else + post_log_fail "$POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_FAILED" + fi +} + + +function startApplication_local() { + # ----------------------------------------- Denali + post_log_dash " Denali " + #launching denali application + DENALI_VERSION="$($DENALI_HOME/$DENALI_BIN -v)" + if [ -n "$DENALI_VERSION" ]; then + post_log_pass "$DENALI_VERSION" # log UI Software version + sudo -u $DENALI_USER $DENALI_HOME/$DENALI_BIN $APPLICATION_PARAMS 1>> /tmp/denali.out 2>> /tmp/denali.out & + else + post_log_fail "Unknown Applicaion Version for $DENALI_HOME/$DENALI_BIN" + fi +} + + function timerStart() { time_start=$(date +%s) } @@ -443,6 +549,7 @@ function applicationPOST() { setupConsoleout + disableRootSSH cleanupPOSTLogs setupCANBus setupResolved @@ -453,8 +560,5 @@ setupWiFi setupBluetooth testTouchscreen - testApplicationShasum testCloudSystem - startCloudSync - startApplication }