]> gitweb.factorcode.org Git - factor.git/commitdiff
io.files.info.unix.linux: don't quit if we can't read fuse portal filesystem
authorDoug Coleman <doug.coleman@gmail.com>
Wed, 11 Jan 2023 17:42:52 +0000 (11:42 -0600)
committerDoug Coleman <doug.coleman@gmail.com>
Wed, 11 Jan 2023 17:42:52 +0000 (11:42 -0600)
some links:

https://bugzilla.redhat.com/show_bug.cgi?id=1913358

https://github.com/flatpak/xdg-desktop-portal/issues/512

https://askubuntu.com/questions/1227667/df-command-throws-error-on-run-user-1000-doc-folder

basis/io/files/info/unix/linux/linux-tests.factor
basis/io/files/info/unix/linux/linux.factor

index 71b71b535ce0489334fd70a3d4f13674608fcdf9..aec2d17e144aa5661fe379e5d88283ed07fd2024 100644 (file)
@@ -4,3 +4,5 @@ USING: tools.test io.files.info.unix.linux ;
 
 [ "/media/erg/4TB D" ]
 [ "/media/erg/4TB\\040D" decode-mount-point ] unit-test
+
+[ "/run/user/1001/doc" file-system-info ] must-not-fail
index 00ef82e00d7957fe7dd48ff76f76e282eeabe293..ff9e92f9704ec021e3485689e4455f377877898c 100644 (file)
@@ -68,15 +68,21 @@ frequency pass-number ;
     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 ]
@@ -91,8 +97,8 @@ M: linux file-systems
     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 ]