diff options
Diffstat (limited to 'CopyFile.hs')
-rw-r--r-- | CopyFile.hs | 24 |
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] |