aboutsummaryrefslogtreecommitdiff
path: root/scripts/.local/bin/personal/syshealth
blob: b60b122b8a96fbec6a07eab9019fa9b0db1a7f39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash

# NOTE: This script is run by cron periodically

export XDG_RUNTIME_DIR="/run/user/$(id -u)"

acpi_report="$(acpi | grep -v unavailable | head -n 1)"
sensors_report="$(sensors | grep "Package id 0:")"

# Battery charge check
local_percent="$(echo $acpi_report | awk '{print $4}')"
local_state="$(echo $acpi_report | awk '{print $3}')"
local_time="$(echo $acpi_report | awk '{print $5}')"

battery_message=("Warning: " "Battery charge critical")
temperature_message=("Warning: " "Core temperature critical")

if ((${local_percent::-2} <= 15)); then
  if [[ "${local_state::-1}" == "Discharging" ]]; then
    notify-send "${battery_message[0]}" "${battery_message[1]}" -u critical
    # espeak "${battery_message[0]}${battery_message[1]}"
  fi
elif ((${local_percent::-2} >= 90)); then
  if [[ "${local_state::-1}" == "Charging" ]]; then
    notify-send "${battery_message[0]}" "${battery_message[1]}" -u critical
    # espeak "${battery_message[0]}${battery_message[1]}"
  fi
fi

# Core temperature check
local_temp="$(echo $sensors_report | awk '{print $4}' | sed 's/+//g')"
local_temp_high="$(echo $sensors_report | awk '{print $7}' | sed 's/+//g')"

if ((${local_temp::-4} >= 90)); then
  notify-send "${temperature_message[0]}" "${temperature_message[1]}" -u critical
  # espeak "${temperature_message[0]}${temperature_message[1]}"
fi