CHAR: \s [ "/etc/mtab" utf8 file>csv ] with-delimiter
[ mtab-csv>mtab-entry ] map ;
-: (file-system-info) ( path -- file-system-info )
- [ new-file-system-info ] dip
+: fill-file-system-info ( file-system-info path -- file-system-info )
[ file-system-statfs statfs>file-system-info ]
[ file-system-statvfs statvfs>file-system-info ] bi
file-system-calculations ; inline
+: file-system-info-ignore-errors ( file-system-info -- file-system-info )
+ [ new-file-system-info ] dip
+ [ fill-file-system-info ] [ 2drop ] recover ; inline
+
+: (file-system-info) ( path -- file-system-info )
+ [ new-file-system-info ] dip fill-file-system-info ;
+
: mtab-entry>file-system-info ( mtab-entry -- file-system-info/f )
'[
- _ [ mount-point>> (file-system-info) ] [ ] bi
+ _ [ mount-point>> file-system-info-ignore-errors ] [ ] bi
{
[ file-system-name>> >>device-name ]
[ mount-point>> >>mount-point ]
parse-mtab [ mtab-entry>file-system-info ] map sift ;
M: linux file-system-info
- normalize-path [ (file-system-info) ] [ ] bi
- find-mount-point
+ normalize-path
+ [ file-system-info-ignore-errors ] [ find-mount-point ] bi
{
[ file-system-name>> >>device-name drop ]
[ mount-point>> >>mount-point drop ]