From e408ed4bf719f720211bbf4aee3098b3291b652a Mon Sep 17 00:00:00 2001 From: Ilya Mashchenko Date: Wed, 27 Apr 2022 10:49:35 +0300 Subject: fix: use 'diskutil info` to calculate the disk size on macOS (#12764) --- daemon/system-info.sh | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'daemon') diff --git a/daemon/system-info.sh b/daemon/system-info.sh index 7fb2f25b5d..56517d0d7c 100755 --- a/daemon/system-info.sh +++ b/daemon/system-info.sh @@ -332,18 +332,23 @@ DISK_SIZE="unknown" DISK_DETECTION="none" if [ "${KERNEL_NAME}" = "Darwin" ]; then - types='hfs' + if DISK_SIZE=$(diskutil info / 2>/dev/null | awk '/Disk Size/ {total += substr($5,2,length($5))} END { print total }') && + [ -n "$DISK_SIZE" ] && [ "$DISK_SIZE" != "0" ]; then + DISK_DETECTION="diskutil" + else + types='hfs' - if (lsvfs | grep -q apfs); then - types="${types},apfs" - fi + if (lsvfs | grep -q apfs); then + types="${types},apfs" + fi - if (lsvfs | grep -q ufs); then - types="${types},ufs" - fi + if (lsvfs | grep -q ufs); then + types="${types},ufs" + fi - DISK_DETECTION="df" - DISK_SIZE=$(($(/bin/df -k -t ${types} | tail -n +2 | sed -E 's/\/dev\/disk([[:digit:]]*)s[[:digit:]]*/\/dev\/disk\1/g' | sort -k 1 | awk -F ' ' '{s=$NF;for(i=NF-1;i>=1;i--)s=s FS $i;print s}' | uniq -f 9 | awk '{print $8}' | tr '\n' '+' | rev | cut -f 2- -d '+' | rev) * 1024)) + DISK_DETECTION="df" + DISK_SIZE=$(($(/bin/df -k -t ${types} | tail -n +2 | sed -E 's/\/dev\/disk([[:digit:]]*)s[[:digit:]]*/\/dev\/disk\1/g' | sort -k 1 | awk -F ' ' '{s=$NF;for(i=NF-1;i>=1;i--)s=s FS $i;print s}' | uniq -f 9 | awk '{print $8}' | tr '\n' '+' | rev | cut -f 2- -d '+' | rev) * 1024)) + fi elif [ "${KERNEL_NAME}" = FreeBSD ]; then types='ufs' -- cgit v1.2.3