summaryrefslogtreecommitdiff
path: root/copyFile.hs
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2014-08-09 10:58:03 +0800
committerJoe Zhao <ztuowen@gmail.com>2014-08-09 10:58:03 +0800
commit5bdaa1e4ffe40add10f000ee993e6b500c419a37 (patch)
tree46a624488ece8d37fa3580422234ed2b4acc6728 /copyFile.hs
parent01aa73b269f7ad780233be338affdf3c9288b1ed (diff)
downloadhaskbox-old-5bdaa1e4ffe40add10f000ee993e6b500c419a37.tar.gz
haskbox-old-5bdaa1e4ffe40add10f000ee993e6b500c419a37.tar.bz2
haskbox-old-5bdaa1e4ffe40add10f000ee993e6b500c419a37.zip
add files from home for previous chapters and sandboxes
Diffstat (limited to 'copyFile.hs')
-rw-r--r--copyFile.hs21
1 files changed, 21 insertions, 0 deletions
diff --git a/copyFile.hs b/copyFile.hs
new file mode 100644
index 0000000..0835b0e
--- /dev/null
+++ b/copyFile.hs
@@ -0,0 +1,21 @@
+import System.Environment
+import System.Directory
+import System.IO
+import Control.Exception
+import qualified Data.ByteString.Lazy as B
+
+main = do
+ (fileName1:fileName2:_) <- getArgs
+ copy fileName1 fileName2
+
+copy source dest = do
+ contents <- B.readFile source
+ bracketOnError
+ (openTempFile "." "temp")
+ (\(tempName, tempHandle) -> do
+ hClose tempHandle
+ removeFile tempName)
+ (\(tempName, tempHandle) -> do
+ B.hPutStr tempHandle contents
+ hClose tempHandle
+ renameFile tempName dest)