Index: scripts/_errors_ =================================================================== diff -u -r79a9b03991667bd9cc032f95fd72cac513554c74 -rb743e6d20c409d112cfe5a82366dbdf79460203c --- scripts/_errors_ (.../_errors_) (revision 79a9b03991667bd9cc032f95fd72cac513554c74) +++ scripts/_errors_ (.../_errors_) (revision b743e6d20c409d112cfe5a82366dbdf79460203c) @@ -56,6 +56,7 @@ ERR_CMDFAIL_WIFI_INFO_MASK=26 ERR_CMDFAIL_WIFI_INFO_GATEWAY=27 ERR_CMDFAIL_WIFI_INFO_DNS=28 +ERR_CMDFAIL_WIFI_DELETE_CONNECTION=29 # 3x: Brightness Errors 3x ERR_CMDFAIL_BRIGHTNESS_GET=30 @@ -66,3 +67,25 @@ ERR_CMDFAIL_USB_DEVICE_MOUNT=41 ERR_CMDFAIL_USB_FOLDER_REMOVE=42 ERR_CMDFAIL_USB_DEVICE_UMOUNT=43 + +# 5x: Date Time Errors +ERR_CMDFAIL_TIMEDATECTL=50 +ERR_CMDFAIL_DATE=51 +ERR_CMDFAIL_HW_CLOCK=52 + +# 6x: Factory Reset Errors +ERR_CMDFAIL_SETTINGS_CONF_PASSNOTFOUND=60 +ERR_CMDFAIL_SETTINGS_CONF_OVERWRITE=61 +ERR_CMDFAIL_SETTINGS_DFLT_RESTORE=62 +ERR_CMDFAIL_SETTINGS_REMOVE_LOG_FOLDER=63 +ERR_CMDFAIL_SETTINGS_REMOVE_SERVICE_LOG=64 +ERR_CMDFAIL_SETTINGS_COUNT_SERVICE_LOG=65 +ERR_CMDFAIL_SETTINGS_REMOVE_TX_LOG=66 +ERR_CMDFAIL_SETTINGS_COUNT_TX_LOG=67 + +# 7x: SSH Access Errors +ERR_CMDFAIL_SSH_SERVICE=70 +ERR_CMDFAIL_SSH_STATUS=71 +ERR_CMDFAIL_ROOT_LOGIN_ENABLED=72 +ERR_CMDFAIL_ROOT_LOGIN_DISABLED=73 +ERR_CMDFAIL_ROOT_LOGIN_STATUS=74 Index: scripts/date_time_set.sh =================================================================== diff -u -r2a5e8882fa17faacf0c58b430f570cbe095265b5 -rb743e6d20c409d112cfe5a82366dbdf79460203c --- scripts/date_time_set.sh (.../date_time_set.sh) (revision 2a5e8882fa17faacf0c58b430f570cbe095265b5) +++ scripts/date_time_set.sh (.../date_time_set.sh) (revision b743e6d20c409d112cfe5a82366dbdf79460203c) @@ -15,18 +15,38 @@ # ############################################################################ -if [ $# -eq 0 ]; then - currentFile=$(basename "$0") - echo "Usage: ./$currentFile 'yyyy-mm-dd HH:MM:SS' [ntp:true|false]" - exit 0 -fi +# Description +# Sets system time and NTP flag +# Parameters +# - DateTime to update +# - Network Time protocol flag +# Considerations +# Setting the system time with a custom time will only work if NTP is set to off + +# sources +. ./_errors_ +. ./_functions_ + +# variables +PARAM_COUNT=2 new_time="$1" ntp_flag="${2:-false}" # Default to 'false' if not provided +# checks +check_param_count "$#" "$PARAM_COUNT" + +# main sudo timedatectl set-ntp "$ntp_flag" +check_result "$?" "$ERR_CMDFAIL_TIMEDATECTL" sudo date -s "$new_time" +check_result "$?" "$ERR_CMDFAIL_DATE" -# set the hwclock from the system time -sudo hwclock -w +sudo hwclock -w +check_result "$?" "$ERR_CMDFAIL_HW_CLOCK" + +# exit gracefully +sleep 0.1 +echo "" +exit 0 \ No newline at end of file Fisheye: Tag b743e6d20c409d112cfe5a82366dbdf79460203c refers to a dead (removed) revision in file `scripts/decommission.sh'. Fisheye: No comparison available. Pass `N' to diff? Index: scripts/factory_reset.sh =================================================================== diff -u -r15f9b824713355427ea8a1de5e0a7ecca5392c28 -rb743e6d20c409d112cfe5a82366dbdf79460203c --- scripts/factory_reset.sh (.../factory_reset.sh) (revision 15f9b824713355427ea8a1de5e0a7ecca5392c28) +++ scripts/factory_reset.sh (.../factory_reset.sh) (revision b743e6d20c409d112cfe5a82366dbdf79460203c) @@ -16,28 +16,29 @@ # ############################################################################ -# @details -# This file is called by UI Software to remove and reset the device +# Description +# - delete WiFi settings +# - delete Bluetooth settings +# - settings.conf to default +# - brightness to default (5) +# - delete logs +# - keep partition password +# - keep service password +# - keep cloudsync tokens +# Parameters +# - None -#TODO This script needs to be integrated with the globals.sh +# sources +. ./_errors_ +. ./_functions_ -ERR_REMOVE_PRM_DIR=150 -ERR_REMOVE_PRM_FIL=151 -ERR_REMOVE_CMD_DIR=152 -ERR_REMOVE_CMD_FIL=153 -ERR_REMOVE_DEL_DIR=154 -ERR_REMOVE_DEL_FIL=155 +# variables +PARAM_COUNT=0 -ERR_CLEAN_SETTINGS_CONF_PASSNOTFOUND=159 -ERR_CLEAN_SETTINGS_CONF_OVERWRITE=160 -ERR_CLEAN_SETTINGS_DFLT_RESTORE=161 - -ERR_CLEAN_LOGS=162 - LOC_SETTINGS_CONF="/opt/leahi/configurations/Settings/System.conf" LOC_SETTINGS_DFLT="/opt/leahi/configurations/Settings/System.dflt" LOC_LOG_BASE_FOLDER="/media/sd-card/" -LOC_TX_LOG_BASE_FOLDER="/var/configurations/treatment/" +LOC_TX_LOG_BASE_FOLDER="/opt/leahi/configurations/treatment/" LOC_SCRIPTS=/opt/leahi/scripts LOC_SCRIPTS_BRIGHTNESS=$LOC_SCRIPTS/brightness.sh @@ -46,34 +47,7 @@ TRUE=1 FALSE=0 -# check if the passed argument is a non-zero number -function isNonZero () - # $1 - mutant: the argument to be detected -{ - local _ok_=$FALSE - if [[ $1 =~ ^[0-9]+$ ]]; then - if (( $1 )); then - _ok_=$TRUE - fi - fi - echo $_ok_ -} - -# exits with the exit code if the condition ($1) is non-zero -function exitError () - # $1 - number: boolean result to exit if non-zero, with exit code - # $1 - number: exit code - # $2 - string: echo message [optional] -{ - if (( $2 )); then - echo "$3" - fi - - if (( $(isNonZero $1) )); then - exit $2 - fi -} - +# functions function deleteWiFi() { $LOC_SCRIPTS/wifi_disconnect_network.sh wlan0 } @@ -83,19 +57,14 @@ } function defaultSettings() { - local _has_error_=$FALSE - servicePasswordLine=$(grep -A1 "\[Service\]" "$LOC_SETTINGS_CONF" | grep Password) # store the service password line - _has_error_= [[ -z "$servicePasswordLine" ]] - exitError $_has_error_ $ERR_CLEAN_SETTINGS_CONF_PASSNOTFOUND "Password not found in '$LOC_SETTINGS_CONF'" + check_result "$?" "$ERR_CMDFAIL_SETTINGS_CONF_PASSNOTFOUND" cp $LOC_SETTINGS_DFLT $LOC_SETTINGS_CONF # reset the settings to default settings - _has_error_=$? - exitError $_has_error_ $ERR_CLEAN_SETTINGS_CONF_OVERWRITE "Service settings overwrite failed" + check_result "$?" "$ERR_CMDFAIL_SETTINGS_CONF_OVERWRITE" - sed -i "s/^.*Password.*$/$servicePasswordLine/" $LOC_SETTINGS_CONF # keep the service password - _has_error_=$? - exitError $_has_error_ $ERR_CLEAN_SETTINGS_DFLT_RESTORE "Service password restore failed" + sed -i "s/^.*Password.*$/$servicePasswordLine/" $LOC_SETTINGS_CONF # keep the service password + check_result "$?" "$ERR_CMDFAIL_SETTINGS_DFLT_RESTORE" } function defaultBrightness() { @@ -110,40 +79,31 @@ # - setting maxDepth to 2 due to path used is root level with sd-card/ folders of logs # NOTE: find command always return true / non-zero! when using with exec # TODO: Checking the file count should be fixed later - + # Remove the contents of the log folder rm "$LOC_LOG_BASE_FOLDER"/log/* _has_error_=!$? - exitError $_has_error_ $ERR_REMOVE_CMD_FIL "Log file deletion" - + check_result $_has_error_ "$ERR_CMDFAIL_SETTINGS_REMOVE_LOG_FOLDER" + # Remove the contents of the service folder rm "$LOC_LOG_BASE_FOLDER"/service/* _has_error_=!$? - exitError $_has_error_ $ERR_REMOVE_CMD_FIL "Service file deletion" + check_result $_has_error_ "$ERR_CMDFAIL_SETTINGS_REMOVE_SERVICE_LOG" fileCount=$(find "$LOC_LOG_BASE_FOLDER" -maxdepth 2 -type f -daystart -mtime +0 | wc -l) _has_error_=$fileCount - exitError $_has_error_ $ERR_REMOVE_DEL_FIL "Remained '$fileCount' file undeleted" + check_result $_has_error_ "$ERR_CMDFAIL_SETTINGS_COUNT_SERVICE_LOG" # Deleting treatment logs in encrypted partition: find "$LOC_TX_LOG_BASE_FOLDER" -maxdepth 2 -type f | xargs rm - _has_error_=!$? - exitError $_has_error_ $ERR_REMOVE_CMD_FIL "Tx Log file deletion" + check_result $_has_error_ "$ERR_CMDFAIL_SETTINGS_REMOVE_TX_LOG" fileCount=$(find "$LOC_TX_LOG_BASE_FOLDER" -maxdepth 2 -type f | wc -l) _has_error_=$fileCount - exitError $_has_error_ $ERR_REMOVE_DEL_FIL "Remained '$fileCount' file undeleted" + check_result $_has_error_ "$ERR_CMDFAIL_SETTINGS_COUNT_TX_LOG" } -# delete WiFi settings -# delete Bluetooth settings -# settings.conf to default -# brightness to default (10) -# delete logs -# keep partition password -# keep service password -# keep cloudsync tokens function main() { deleteWiFi deleteBluetooth @@ -152,6 +112,13 @@ deleteLogFiles } +# checks +check_param_count "$#" "$PARAM_COUNT" + +# main main + +# exit gracefully +sleep 0.1 echo "" -exit 0 +exit 0 \ No newline at end of file Index: scripts/rootsshaccess.sh =================================================================== diff -u -r7d194844bb325200b78da21ae7457bb7f7543ec7 -rb743e6d20c409d112cfe5a82366dbdf79460203c --- scripts/rootsshaccess.sh (.../rootsshaccess.sh) (revision 7d194844bb325200b78da21ae7457bb7f7543ec7) +++ scripts/rootsshaccess.sh (.../rootsshaccess.sh) (revision b743e6d20c409d112cfe5a82366dbdf79460203c) @@ -15,31 +15,36 @@ # ############################################################################ + +# Description +# Sets SSH Access and Root Login and return current configuration +# Parameters +# Configuration for SSH Access and Root Login +# Retruns +# Set configuration + +# sources +. ./_errors_ +. ./_functions_ + +# variables SSHD_CONFIG="/etc/default/dropbear" SSH_SERVICE="system-dropbear.slice" -ERR_EXECUTION=201 +PARAM_COUNT=1 _enable=1 _disable=0 -#TODO Move to globals.sh -function check_num() { - if [[ $1 != 0 ]]; then - # echo "execution failed $1" - exit $ERR_EXECUTION - fi -} - +# functions function sshd_set() { if [[ $_enable == $1 ]]; then sudo systemctl start $SSH_SERVICE - check_num $? ", started" else # stop the ssh service sudo systemctl stop $SSH_SERVICE - check_num $? ", stopped" fi + check_result "$?" "$ERR_CMDFAIL_SSH_SERVICE" } function sshd_get() { @@ -48,20 +53,21 @@ else echo $_disable fi + check_result "$?" "$ERR_CMDFAIL_SSH_STATUS" } function root_set() { if [[ $_enable == $1 ]]; then # Remove -w from DROPBEAR_EXTRA_ARGS if present sudo sed -i 's/-w//g' $SSHD_CONFIG - check_num $? " enabled" + check_result "$?" "$ERR_CMDFAIL_ROOT_LOGIN_ENABLED" else # Add -w if not already present if ! grep -q '\-w' $SSHD_CONFIG; then # Append to DROPBEAR_EXTRA_ARGS sudo sed -i '/^DROPBEAR_EXTRA_ARGS=/ s/"$/ -w"/' $SSHD_CONFIG fi - check_num $? " disabled" + check_result "$?" "$ERR_CMDFAIL_ROOT_LOGIN_DISABLED" fi } @@ -72,6 +78,7 @@ else echo $_enable fi + check_result "$?" "$ERR_CMDFAIL_ROOT_LOGIN_STATUS" } function handleCommand() { @@ -111,6 +118,10 @@ esac } +# checks +check_param_count "$#" "$PARAM_COUNT" + +# main case "$#" in 0) echo $(toCheckState) @@ -121,5 +132,6 @@ ;; esac +# exit gracefully echo "" exit 0 Index: scripts/wifi_disconnect_network.sh =================================================================== diff -u -r15f9b824713355427ea8a1de5e0a7ecca5392c28 -rb743e6d20c409d112cfe5a82366dbdf79460203c --- scripts/wifi_disconnect_network.sh (.../wifi_disconnect_network.sh) (revision 15f9b824713355427ea8a1de5e0a7ecca5392c28) +++ scripts/wifi_disconnect_network.sh (.../wifi_disconnect_network.sh) (revision b743e6d20c409d112cfe5a82366dbdf79460203c) @@ -15,21 +15,29 @@ # ############################################################################ -if [ $# -eq 0 ]; then - currentFile=$(basename "$0") - echo "Usage: ./$currentFile " - exit 0 -fi +# Description +# Lists all the available Access Points using nmcli command of NetworkManager module. +# Parameters +# No Parameters +# Returns +# Exit code -iface=$1 +# sources +. ./_errors_ +. ./_functions_ -# stop the wpa service -sudo systemctl stop wpa_supplicant@"$iface".service +# variables +PARAM_COUNT=0 -#remove the wpa configuration file -sudo rm -f /etc/wpa_supplicant/wpa_supplicant-"$iface".conf +# checks +check_param_count "$#" "$PARAM_COUNT" -#Shutoff wifi interface -sudo ip link set $iface down +# main +nmcli connection delete $(nmcli -t -f NAME connection show --active) +check_result "$?" "$ERR_CMDFAIL_WIFI_DELETE_CONNECTION" +# exit gracefully +sleep 0.1 +echo "" +exit 0 Index: scripts/wifi_scan.sh =================================================================== diff -u -r79a9b03991667bd9cc032f95fd72cac513554c74 -rb743e6d20c409d112cfe5a82366dbdf79460203c --- scripts/wifi_scan.sh (.../wifi_scan.sh) (revision 79a9b03991667bd9cc032f95fd72cac513554c74) +++ scripts/wifi_scan.sh (.../wifi_scan.sh) (revision b743e6d20c409d112cfe5a82366dbdf79460203c) @@ -19,7 +19,7 @@ # Lists all the available Access Points using nmcli command of NetworkManager module. # Parameters # No Parameters -# Retruns +# Returns # Sorted list of the APs in defined column as specified in the $COLUMNS. # Considerations # For the Application to work with the List of APs