From 8cee0194176b196ff429d2b3e81f47c190af8a12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AB=8F=E8=A8=AA=E5=AD=90?= Date: Tue, 27 Feb 2024 13:54:55 +0900 Subject: [PATCH] =?UTF-8?q?macOS=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + README.md | 6 +++++- lib/byobu/cpu_freq | 10 ++++++++++ lib/byobu/disk | 5 ++++- lib/byobu/memory | 7 +++++++ 5 files changed, 27 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d8fc5a..50a8e45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # 5.3 * Makefileの修正 +* macOS対応 # 5.2 * 今度から、テクニカル諏訪子ちゃんは更新します。 diff --git a/README.md b/README.md index 34c124c..2faef0e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ -元のbyobuはDebian向けらしい、だからArtix、CRUX、OpenBSD、及びFreeBSDでもうまく機能している間で変更した。 +元のbyobuはDebian向けらしい、だからArtix、CRUX、OpenBSD、macOS、及びFreeBSDでもうまく機能している間で変更した。 更新:\ 元のbyobuの開発者は辞めたらしいから、バージョン5.2からあたしが開発者だわ〜 + +## 注意 +FreeBSD、OpenBSD、NetBSD、又はDragonfly BSDでインストールする場合、「gmake install」をご利用下さい。 +Linux、macOS、Illumos、及びHaikuの場合は「make install」です。 diff --git a/lib/byobu/cpu_freq b/lib/byobu/cpu_freq index 27a2240..0ae2332 100755 --- a/lib/byobu/cpu_freq +++ b/lib/byobu/cpu_freq @@ -33,6 +33,16 @@ __cpu_freq() { freq="${hz}" unit="MHz" fi + elif cores=$(sysctl -n hw.ncpu 2>/dev/null) && hz=$(sysctl -n hw.cpufrequency | awk '{ printf "%.0f\n", $1 / 1000000 }' 2>/dev/null); then + # macOS + if [ "$hz" -ge "1000" ]; then + fpdiv $hz "1000" 1 # 1Ghz + freq="${_RET}" + unit="GHz" + else + freq="${hz}" + unit="MHz" + fi elif cores=$(sysctl -n hw.ncpuonline 2>/dev/null) && hz=$(sysctl -n hw.cpuspeed 2>/dev/null); then # OpenBSD if [ "$hz" -ge "1000" ]; then diff --git a/lib/byobu/disk b/lib/byobu/disk index 485deee..dc8e2e5 100755 --- a/lib/byobu/disk +++ b/lib/byobu/disk @@ -1,7 +1,7 @@ #!/bin/sh -e __disk_detail() { - if [ $(uname) = "FreeBSD" ]; then + if [ $(uname) = "FreeBSD" -o $(uname) = "Darwin" ]; then df -h else df -h -P @@ -13,6 +13,9 @@ __disk() { if [ $(uname) = "FreeBSD" ]; then use=$(zpool list | tail -1 | awk '{ print $3 }') total=$(zpool list | tail -1 | awk '{ print $2 }') + elif [ $(uname) = "Darwin" ]; then + use=$(df -h "/" | tail -1 | awk '{ print $3 }' | sed 's/i$//') + total=$(df -h "/" | tail -1 | awk '{ print $2 }' | sed 's/i$//') else use=$(df -h "/" | tail -1 | awk '{ print $3 }') total=$(df -h "/" | tail -1 | awk '{ print $2 }') diff --git a/lib/byobu/memory b/lib/byobu/memory index 9b60c85..a4324eb 100755 --- a/lib/byobu/memory +++ b/lib/byobu/memory @@ -4,6 +4,9 @@ __memory_detail() { if [ "$(uname)" = "OpenBSD" -o "$(uname)" = "FreeBSD" ]; then # OpenBSD / FreeBSD top -b -d 1 + elif [ "$(uname)" = "Darwin" ]; then + # macOS + top -l 1 -s 0 -n 0 | grep PhysMem else # Linux free @@ -37,6 +40,10 @@ __memory() { free_mb=$((inactive_count * pagesize / 1024 / 1024)) used_mb=$((total - free_mb)) ;; + Darwin) + total=$(printf "%.1f" "$(echo "$(sysctl -n hw.memsize_usable) / 1024 / 1024" | bc -l)") + used_mb=$(printf "%.1f" "$(echo "$(vm_stat | grep 'Pages active' | awk '{print $3}') * 4096 / (1024 * 1024)" | bc -l)") + ;; esac if [ $total -ge 1024 ]; then