#!/bin/sh ########################################################################### # # Copyright (c) 2019-2023 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 run.sh # # @author (last) Behrouz NematiPour # @date (last) 05-Apr-2023 # @author (original) Behrouz NematiPour # @date (original) 28-Oct-2019 # ############################################################################ # globals.sh needs to be initialized by the user home path # otherwise creates the post.log in the / folder instead of home. HOME=/home/$(whoami) source ./globals.sh CLOUD_USER=cloud CLOUD_HOME=/home/$CLOUD_USER DENALI_USER=denali DENALI_HOME=/home/$DENALI_USER function Local_testApplicationShasum() { # ----------------------------------------- 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 Local_startCloudSync() { # ----------------------------------------- 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 sudo -u $CLOUD_USER \ mv $CLOUDSYNC_PATH/* $CLOUDSYNC_BACKUP \ 1>> $POSTOUT 2>> $POSTERR sudo -u $CLOUD_USER \ rm $CLOUD_HOME/$CLOUDSYNC_FOLDER/data/* \ 1>> $POSTOUT 2>> $POSTERR cd $CLOUD_HOME/$CLOUDSYNC_FOLDER/ sudo -u $CLOUD_USER \ python3 ./cs.py start & sleep 2 CLOUDSYNC_STATUS="$(sudo -u $CLOUD_USER python3 ./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 Local_startApplication() { # ----------------------------------------- Denali post_log_dash " Denali " #launching denali application DENALI_VERSION="$($DENALI_HOME/$DENALI_BIN -v)" if [ -n "$DENALI_VERSION" ]; then post_log_pass "$($DENALI_HOME/$DENALI_BIN -v)" # log UI Software version if [ "$APPLICATION_PARAMS" == *"-E"* ]; then # do not enclose the APPLICATION_PARAMS in "", then it becomes an # empty parameter to the denali which is not accepted. sudo -u $DENALI_USER \ $DENALI_HOME/$DENALI_BIN $APPLICATION_PARAMS else sudo -u $DENALI_USER \ $DENALI_HOME/$DENALI_BIN $APPLICATION_PARAMS & fi else post_log_fail "Unknown Applicaion Version for $DENALI_HOME/$DENALI_BIN" fi } function Local_applicationPOST() { setupConsoleout cleanupPOSTLogs setupCANBus setupResolved killApplication setupEthernet setupSDCard testRTC setupWiFi setupBluetooth testTouchscreen Local_testApplicationShasum testCloudSystem Local_startCloudSync Local_startApplication } timerStart Local_applicationPOST timerEndLog