diff --git a/meta-opencentauri/images/cosmos-image-base.bb b/meta-opencentauri/images/cosmos-image-base.bb index 478349a5..e69774c1 100644 --- a/meta-opencentauri/images/cosmos-image-base.bb +++ b/meta-opencentauri/images/cosmos-image-base.bb @@ -47,6 +47,7 @@ CORE_IMAGE_EXTRA_INSTALL += "\ afc \ tmc-autotune \ dragonbreath \ + check-disk \ " INITRAMFS_IMAGE = "core-image-tiny-initramfs" diff --git a/meta-opencentauri/recipes-apps/klipper/files/shell.cfg b/meta-opencentauri/recipes-apps/klipper/files/shell.cfg index 9aa5cefc..0ac777e0 100644 --- a/meta-opencentauri/recipes-apps/klipper/files/shell.cfg +++ b/meta-opencentauri/recipes-apps/klipper/files/shell.cfg @@ -107,4 +107,16 @@ initial_duration: 60 gcode: {% if printer.idle_timeout.state in ["Idle", "Ready"] and printer.print_stats.state == "standby" %} RUN_SHELL_COMMAND CMD=CHECK_FOR_UPDATES - {% endif %} \ No newline at end of file + {% endif %} + +[gcode_shell_command CHECK_DISK] +command: check-disk +timeout: 5 +verbose: True + +[delayed_gcode check_disk_startup] +initial_duration: 60 +gcode: + RUN_SHELL_COMMAND CMD=CHECK_DISK + + diff --git a/meta-opencentauri/recipes-data/check-disk/check-disk_0.1.bb b/meta-opencentauri/recipes-data/check-disk/check-disk_0.1.bb new file mode 100644 index 00000000..0d42ca31 --- /dev/null +++ b/meta-opencentauri/recipes-data/check-disk/check-disk_0.1.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "COSMOS Disk Space Checker" +LICENSE = "GPL-3.0-only" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-3.0-only;md5=c79ff39f19dfec6d293b95dea7b07891" + +SRC_URI = "file://check-disk.sh" + +inherit allarch + +RDEPENDS:${PN} = " \ + curl \ + screen-actions \ +" + +do_install[vardeps] += "DISTRO_VERSION" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${UNPACKDIR}/check-disk.sh ${D}${bindir}/check-disk +} + +FILES:${PN} = "${bindir}/check-disk" diff --git a/meta-opencentauri/recipes-data/check-disk/files/check-disk.sh b/meta-opencentauri/recipes-data/check-disk/files/check-disk.sh new file mode 100644 index 00000000..831d21e6 --- /dev/null +++ b/meta-opencentauri/recipes-data/check-disk/files/check-disk.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +ALERTS="" +while read -r line; do + if [ -n "$line" ]; then + ALERTS="${ALERTS}${line}. " + fi +done < <(df -P /user-resource /board-resource | awk 'NR>1 {sub(/%/, "", $5); if ($5 > 90) print $6 " is at " $5 "%"}') + +if [ -n "$ALERTS" ]; then + uiprompt "Disk Space Warning" "ALERT: ${ALERTS}" +fi + + +