mirror of
https://github.com/slint-ui/slint.git
synced 2025-07-13 08:05:19 +00:00
39 lines
1.8 KiB
Bash
Executable file
39 lines
1.8 KiB
Bash
Executable file
#!/bin/bash -e
|
|
# Copyright © SixtyFPS GmbH <info@slint.dev>
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
os_name=`sw_vers -productName`
|
|
os_version=`sw_vers -productVersion`
|
|
os_name="$os_name $os_version"
|
|
uptime=`uptime | awk 'BEGIN{FS="up |,"}{print $2}'`
|
|
cpu_count=`sysctl -n hw.ncpu`
|
|
cpu_vendor=`sysctl -n machdep.cpu.vendor`
|
|
cpu_model=`sysctl -n machdep.cpu.brand_string`
|
|
mem_size_kb=$((`sysctl -n hw.memsize` / 1000))
|
|
page_size=`vm_stat | grep "Mach Virtual Memory Statistics" | sed -n -e 's,.*page size of \(.*\) bytes.*,\1,p'`
|
|
pages_inactive=`vm_stat|grep "Pages inactive" | sed -e "s,Pages inactive:[[:space:]]*\(.*\)\.,\1,"`
|
|
file_backed_pages=`vm_stat|grep "File-backed pages" | sed -e "s,File-backed pages:[[:space:]]*\(.*\)\.,\1,"`
|
|
buffer_mem_size_kb=$(((pages_inactive + file_backed_pages) * page_size / 1024))
|
|
swap_total_mb=`sysctl -n vm.swapusage | sed -n -e 's,total = \(.*\)\..*M.*used.*,\1,p'`
|
|
swap_total_kb=$(($swap_total_mb * 1024))
|
|
swap_used_mb=`sysctl -n vm.swapusage | sed -n -e 's,.*used = \(.*\)\..*M.*free.*,\1,p'`
|
|
swap_used_kb=$((swap_used_mb * 1024))
|
|
swap_free_mb=`sysctl -n vm.swapusage | sed -n -e 's,.*free = \(.*\)\..*M.*$,\1,p'`
|
|
swap_free_kb=$((swap_free_mb * 1024))
|
|
partitions=`df -lk | tail -n+2 | sed 's/\([^ ]*\) *\([^ ]*\) *\([^ ]*\) *\([^ ]*\) *\([^ ]*\) *\([^ ]*\) *\([^ ]*\) *\([^ ]*\) *\([^ ]*.*\)/{ "dev": "\1", "mnt": "\9", "total": \2, "free": \4 },/' | sed '$s/,$//'`
|
|
|
|
slint-viewer `dirname $0`/sysinfo.slint --load-data - <<EOT
|
|
{
|
|
"os_name": "$os_name",
|
|
"uptime": "$uptime",
|
|
"cpu_count": "$cpu_count",
|
|
"cpu_vendor": "$cpu_vendor",
|
|
"cpu_model": "$cpu_model",
|
|
"mem_size_kb": $mem_size_kb,
|
|
"buffer_mem_size_kb": $buffer_mem_size_kb,
|
|
"swap_total_kb": $swap_total_kb,
|
|
"swap_used_kb": $swap_used_kb,
|
|
"swap_free_kb": $swap_free_kb,
|
|
"partitions": [ $partitions ]
|
|
}
|
|
EOT
|