summaryrefslogtreecommitdiff
path: root/CopyFile.hs
diff options
context:
space:
mode:
Diffstat (limited to 'CopyFile.hs')
-rw-r--r--CopyFile.hs24
1 files changed, 24 insertions, 0 deletions
diff --git a/CopyFile.hs b/CopyFile.hs
new file mode 100644
index 000000000..39f1b0183
--- /dev/null
+++ b/CopyFile.hs
@@ -0,0 +1,24 @@
+{- git-annex file copying
+ -
+ - Copyright 2010 Joey Hess <joey@kitenet.net>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+module CopyFile (copyFile) where
+
+import Utility
+import qualified SysConfig
+
+{- The cp command is used, because I hate reinventing the wheel,
+ - and because this allows easy access to features like cp --reflink. -}
+copyFile :: FilePath -> FilePath -> IO Bool
+copyFile src dest = boolSystem "cp" opts
+ where
+ opts = if (SysConfig.cp_reflink_auto)
+ then ["--reflink=auto", src, dest]
+ else if (SysConfig.cp_a)
+ then ["-a", src, dest]
+ else if (SysConfig.cp_p)
+ then ["-p", src, dest]
+ else [src, dest]