@@ -58,49 +58,15 @@ static Res<Ref::Path> _resolveUrl(Ref::Url const& url) {
5858 }
5959}
6060
61- Res<Rc<Fd>> openFile (Ref::Url const & url) {
61+ Res<Rc<Fd>> openFile (Ref::Url const & url, Flags<OpenOption> options ) {
6262 auto path = try $(_resolveUrl (url));
6363 auto fid = try $(
6464 Sys::run (
6565 Skift::globalFsClient ()
6666 .callAsync <Strata::IFs::Open>(
6767 {
6868 path._segs ,
69- {Strata::IFs::Open::OPEN},
70- },
71- Async::CancellationToken::uninterruptible ()
72- )
73- )
74- );
75- return Ok (makeRc<Skift::FsFd>(fid));
76- }
77-
78- Res<Rc<Fd>> createFile (Ref::Url const & url) {
79- auto path = try $(_resolveUrl (url));
80- auto fid = try $(
81- Sys::run (
82- Skift::globalFsClient ()
83- .callAsync <Strata::IFs::Open>(
84- {
85- path._segs ,
86- {Strata::IFs::Open::CREATE},
87- },
88- Async::CancellationToken::uninterruptible ()
89- )
90- )
91- );
92- return Ok (makeRc<Skift::FsFd>(fid));
93- }
94-
95- Res<Rc<Fd>> openOrCreateFile (Ref::Url const & url) {
96- auto path = try $(_resolveUrl (url));
97- auto fid = try $(
98- Sys::run (
99- Skift::globalFsClient ()
100- .callAsync <Strata::IFs::Open>(
101- {
102- path._segs ,
103- {Strata::IFs::Open::OPEN, Strata::IFs::Open::CREATE},
69+ options,
10470 },
10571 Async::CancellationToken::uninterruptible ()
10672 )
@@ -131,7 +97,7 @@ Async::Task<Vec<DirEntry>> readDirAsync(Ref::Url const& url, Async::Cancellation
13197 auto fid = co_trya$(fs.callAsync <Strata::IFs::Open>(
13298 {
13399 path._segs ,
134- {Strata::IFs::Open::OPEN },
100+ {OpenOption::READ },
135101 },
136102 ct
137103 ));
@@ -153,7 +119,7 @@ Res<Vec<DirEntry>> readDirOrCreate(Ref::Url const&) {
153119}
154120
155121Res<Stat> stat (Ref::Url const & url) {
156- auto fd = try $(openFile (url));
122+ auto fd = try $(openFile (url, OpenOption::READ ));
157123 return fd->stat ();
158124}
159125
0 commit comments