From 1d9eecee50438d998e98d124317085cc01aab388 Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Thu, 1 Oct 2020 00:19:35 +0800 Subject: [PATCH] diskUsageUtil: filter filesystem type manually Bug: #43 --- server/services/diskUsageService.ts | 7 +++++-- server/util/{diskUsage.ts => diskUsageUtil.ts} | 11 ++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) rename server/util/{diskUsage.ts => diskUsageUtil.ts} (87%) diff --git a/server/services/diskUsageService.ts b/server/services/diskUsageService.ts index 91d613db..4ed03886 100644 --- a/server/services/diskUsageService.ts +++ b/server/services/diskUsageService.ts @@ -4,9 +4,12 @@ */ import {EventEmitter} from 'events'; import type TypedEmitter from 'typed-emitter'; + import type {Disks} from '@shared/types/DiskUsage'; -import {isPlatformSupported, diskUsage} from '../util/diskUsage'; -import type {SupportedPlatform} from '../util/diskUsage'; + +import {isPlatformSupported, diskUsage} from '../util/diskUsageUtil'; + +import type {SupportedPlatform} from '../util/diskUsageUtil'; export interface DiskUsage { id: number; diff --git a/server/util/diskUsage.ts b/server/util/diskUsageUtil.ts similarity index 87% rename from server/util/diskUsage.ts rename to server/util/diskUsageUtil.ts index 6df70c5c..9ea1bbb3 100644 --- a/server/util/diskUsage.ts +++ b/server/util/diskUsageUtil.ts @@ -23,7 +23,7 @@ const filterMountPoint = const MAX_BUFFER_SIZE = 65536; export const diskUsage: Readonly Promise>>> = { linux: () => - execFileAsync('df -xsquashfs -xtmpfs -xdevtmpfs | tail -n+2', { + execFileAsync('df -T | tail -n+2', { shell: true, maxBuffer: MAX_BUFFER_SIZE, }).then(({stdout}) => @@ -31,8 +31,9 @@ export const diskUsage: Readonly Promise disk.split(/\s+/)) - .filter((disk) => filterMountPoint(disk[5])) - .map(([_fs, size, used, avail, _pcent, target]) => { + .filter((disk) => filterMountPoint(disk[6])) + .filter((disk) => disk[1] !== 'devtmpfs' && disk[1] !== 'squashfs' && disk[1] !== 'tmpfs') + .map(([_dev, _fs, size, used, avail, _pcent, target]) => { return { size: Number.parseInt(size, 10) * 1024, used: Number.parseInt(used, 10) * 1024, @@ -51,7 +52,7 @@ export const diskUsage: Readonly Promise disk.split(/\s+/)) .filter((disk) => filterMountPoint(disk[5])) - .map(([_fs, size, used, avail, _pcent, target]) => { + .map(([_dev, size, used, avail, _pcent, target]) => { return { size: Number.parseInt(size, 10) * 1024, used: Number.parseInt(used, 10) * 1024, @@ -70,7 +71,7 @@ export const diskUsage: Readonly Promise disk.split(/\s+/)) .filter((disk) => filterMountPoint(disk[8])) - .map(([_fs, size, used, avail, _pcent, _iused, _ifree, _piused, target]) => { + .map(([_dev, size, used, avail, _pcent, _iused, _ifree, _piused, target]) => { return { size: Number.parseInt(size, 10) * 1024, used: Number.parseInt(used, 10) * 1024,