tickwatch ========= Demo ---- ```terminal ❯ tickwatch --max=100000 --change=/sys/class/net/enp2s0/statistics/rx_packets 2024-11-24 22:43+0100 ..............._______▁_______▁___▁__▁▁▁_____▁_▁___▂______▂_ 2024-11-24 22:44+0100 _______▁___▁_____▂_____________________▂▃▂▅▆▆▂▂▄▄▄▅▇▇▇▆▆▆▇▇▇ 2024-11-24 22:45+0100 ▇▆▆▆▆▆▆▆▇▇▇▇▇▇▇▇▇▇▇▇_____▂___________▁_________________▁___▅ 2024-11-24 22:46+0100 ___▃__▃▁▂▄▅▅__________▁__▁▃_▆▂______▁______▂▅_▂________▂▅_▂_ 2024-11-24 22:47+0100 ▁▆__▁▁▁▄▆▂_▁▅▁▂▁__________▂_▁▂▂▄_▁_▁▁▁___▁▁▁_____▁______▁___ 2024-11-24 22:48+0100 ▂_______▁___▁___▁___▁___▁▂▂_▃▁_▅▂▁▂▁▁▁▂▂▁_▃▁_▂▂▃▁______▁_▂_▂ 2024-11-24 22:49+0100 ▅▁_▁__▂_▁▅▄__▃▂___▂___▁___▁_______▁___▁_____▁_▁________▁___▂ ``` CLI usage --------- ```helptext tickwatch: A monitoring and visualization tool Usage: tickwatch [OPTIONS] Monitor options: --ping=HOST Monitor ping latency to specified IP or hostname Prefix hostname with 4/ or 6/ to force IP version --value=PATH Monitor a sysfs file's value --change=PATH Monitor changes in a sysfs file's value Display options: --scale=CHOICE Set scaling method for values Choices: log2 (default), log10, ln, linear --symbols=CHOICE Set output symbol set Choices: unicode (default), numeric --min=VALUE Set minimum value for scaling (default: 0) --max=VALUE Set maximum value for scaling (default: 1000) Other options: --help, -h Display this help message --version, -v Display the version Examples: tickwatch --ping=6/euxane.net tickwatch --scale=linear --max=50000 \ --value=/sys/class/thermal/thermal_zone0/temp tickwatch --max=100000 \ --change=/sys/class/net/eth0/statistics/rx_packets ``` Development commands -------------------- * Enter the development shell: `nix develop` * Run tests in loop: `watchexec -cclear -r nim r -d:test main.nim` * Build executable: `nim c -d:release main.nim` Copyright and Licence --------------------- Copyright 2024 Euxane TRAN-GIRARD. This code is published under the terms of the European Union Public Licence, version 1.2. See `licence.txt`.