diskUsageUtil: filter filesystem type manually

Bug: #43
This commit is contained in:
Jesse Chan
2020-10-01 00:19:35 +08:00
parent 9bcf1d8e07
commit 1d9eecee50
2 changed files with 11 additions and 7 deletions
+5 -2
View File
@@ -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;
@@ -23,7 +23,7 @@ const filterMountPoint =
const MAX_BUFFER_SIZE = 65536;
export const diskUsage: Readonly<Record<SupportedPlatform, () => Promise<Array<Disk>>>> = {
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<Record<SupportedPlatform, () => Promise<Array<D
.trim()
.split('\n')
.map((disk) => 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<Record<SupportedPlatform, () => Promise<Array<D
.split('\n')
.map((disk) => 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<Record<SupportedPlatform, () => Promise<Array<D
.split('\n')
.map((disk) => 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,