Skip to content

Commit 1d329b8

Browse files
committed
Utimes
1 parent 97845cb commit 1d329b8

File tree

3 files changed

+38
-0
lines changed

3 files changed

+38
-0
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@
6262

6363
unlink :: forall eff. FilePath -> Callback eff Unit -> Eff (fs :: FS | eff) Unit
6464

65+
utimes :: forall eff. FilePath -> Date -> Date -> Callback eff Unit -> Eff (fs :: FS | eff) Unit
66+
6567
writeFile :: forall eff. FilePath -> Buffer -> Callback eff Unit -> Eff (fs :: FS | eff) Unit
6668

6769
writeTextFile :: forall eff. Encoding -> FilePath -> String -> Callback eff Unit -> Eff (fs :: FS | eff) Unit
@@ -143,6 +145,8 @@
143145

144146
unlink :: forall eff. FilePath -> Eff (err :: Exception Error, fs :: FS | eff) Unit
145147

148+
utimes :: forall eff. FilePath -> Date -> Date -> Eff (err :: Exception Error, fs :: FS | eff) Unit
149+
146150
writeFile :: forall eff. FilePath -> Buffer -> Eff (err :: Exception Error, fs :: FS | eff) Unit
147151

148152
writeTextFile :: forall eff. Encoding -> FilePath -> String -> Eff (err :: Exception Error, fs :: FS | eff) Unit

src/Node/FS/Async.purs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@ module Node.FS.Async
1515
, mkdir
1616
, mkdir'
1717
, readdir
18+
, utimes
1819
, readFile
1920
, readTextFile
2021
, writeFile
2122
, writeTextFile
2223
) where
2324

2425
import Control.Monad.Eff
26+
import Data.Date
2527
import Data.Either
2628
import Data.Foreign
2729
import Data.Function
@@ -60,6 +62,7 @@ foreign import fs "var fs = require('fs');" ::
6062
, rmdir :: Fn2 FilePath (JSCallback Unit) Unit
6163
, mkdir :: Fn3 FilePath Number (JSCallback Unit) Unit
6264
, readdir :: Fn2 FilePath (JSCallback [FilePath]) Unit
65+
, utimes :: Fn4 FilePath Number Number (JSCallback Unit) Unit
6366
, readFile :: forall a opts. Fn3 FilePath { | opts } (JSCallback a) Unit
6467
, writeFile :: forall a opts. Fn4 FilePath a { | opts } (JSCallback Unit) Unit
6568
}
@@ -229,6 +232,21 @@ readdir :: forall eff. FilePath
229232
readdir file cb = return $ runFn2
230233
fs.readdir file (handleCallback cb)
231234

235+
-- |
236+
-- Sets the accessed and modified times for the specified file.
237+
--
238+
utimes :: forall eff. FilePath
239+
-> Date
240+
-> Date
241+
-> Callback eff Unit
242+
-> Eff (fs :: FS | eff) Unit
243+
244+
utimes file atime mtime cb = return $ runFn4
245+
fs.utimes file
246+
((toEpochMilliseconds atime) / 1000)
247+
((toEpochMilliseconds mtime) / 1000)
248+
(handleCallback cb)
249+
232250
-- |
233251
-- Reads the entire contents of a file returning the result as a raw buffer.
234252
--

src/Node/FS/Sync.purs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ module Node.FS.Sync
1414
, mkdir
1515
, mkdir'
1616
, readdir
17+
, utimes
1718
, readFile
1819
, readTextFile
1920
, writeFile
@@ -22,6 +23,7 @@ module Node.FS.Sync
2223

2324
import Control.Monad.Eff
2425
import Control.Monad.Eff.Exception
26+
import Data.Date
2527
import Data.Function
2628
import Node.Buffer (Buffer(..))
2729
import Node.Encoding
@@ -44,6 +46,7 @@ foreign import fs "var fs = require('fs');" ::
4446
, rmdirSync :: Fn1 FilePath Unit
4547
, mkdirSync :: Fn2 FilePath Number Unit
4648
, readdirSync :: Fn1 FilePath [FilePath]
49+
, utimesSync :: Fn3 FilePath Number Number Unit
4750
, readFileSync :: forall a opts. Fn2 FilePath { | opts } a
4851
, writeFileSync :: forall a opts. Fn3 FilePath a { | opts } Unit
4952
}
@@ -198,6 +201,19 @@ readdir :: forall eff. FilePath
198201
readdir file = mkEff $ \_ -> runFn1
199202
fs.readdirSync file
200203

204+
-- |
205+
-- Sets the accessed and modified times for the specified file.
206+
--
207+
utimes :: forall eff. FilePath
208+
-> Date
209+
-> Date
210+
-> Eff (fs :: FS, err :: Exception Error | eff) Unit
211+
212+
utimes file atime mtime = mkEff $ \_ -> runFn3
213+
fs.utimesSync file
214+
((toEpochMilliseconds atime) / 1000)
215+
((toEpochMilliseconds mtime) / 1000)
216+
201217
-- |
202218
-- Reads the entire contents of a file returning the result as a raw buffer.
203219
--

0 commit comments

Comments
 (0)