#!/usr/bin/php -q
<?PHP
/* Copyright 2005-2021, Lime Technology
 * Copyright 2012-2021, Bergware International.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License version 2,
 * as published by the Free Software Foundation.
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 */
?>
<?
$docroot = '/usr/local/emhttp';
$varroot = '/var/local/emhttp';
require_once "$docroot/webGui/include/publish.php";

while (true) {
  unset($memory,$sys,$rpms,$lsof);
  exec("grep -Po '^Mem(Total|Available):\s+\K\d+' /proc/meminfo",$memory);
  exec("df /boot /var/log /var/lib/docker|grep -Po '\d+%'",$sys);
  exec("sensors -uA 2>/dev/null|grep -Po 'fan\d_input: \K\d+'",$rpms);
  $info = max(round((1-$memory[1]/$memory[0])*100),0)."%\0".implode("\0",$sys);
  $rpms = count($rpms) ? implode(" RPM\0",$rpms).' RPM' : '';

  $names = array_keys((array)parse_ini_file("$varroot/shares.ini"));
  exec("LANG='en_US.UTF8' lsof -Owl /mnt/disk[0-9]* 2>/dev/null|awk '/^shfs/ && \$0!~/\.AppleD(B|ouble)/ && \$5==\"REG\"'|awk -F/ '{print \$4}'",$lsof);
  $counts = array_count_values($lsof); $count = [];
  foreach ($names as $name) $count[] = $counts[$name] ?? 0;
  $count = implode("\0",$count);

  publish('update1', "$info\1$rpms\1$count");
  sleep(5);
}
?>

