File: Files.hs

package info (click to toggle)
haskell-unixutils 1.22-3
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 132 kB
  • sloc: haskell: 973; makefile: 2
file content (14 lines) | stat: -rw-r--r-- 492 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
module System.Unix.Files where

import System.Posix.Files
import System.IO.Error

-- |calls 'createSymbolicLink' but will remove the target and retry if
-- 'createSymbolicLink' raises EEXIST.
forceSymbolicLink :: FilePath -> FilePath -> IO ()
forceSymbolicLink target linkName =
    createSymbolicLink target linkName `catch`
      (\e -> if isAlreadyExistsError e 
             then do removeLink linkName
                     createSymbolicLink target linkName
             else ioError e)