diff options
-rw-r--r-- | Command/Add.hs | 4 | ||||
-rw-r--r-- | Command/Fix.hs | 6 | ||||
-rw-r--r-- | git-annex.cabal | 12 |
3 files changed, 17 insertions, 5 deletions
diff --git a/Command/Add.hs b/Command/Add.hs index e0a8269aa..88515d79f 100644 --- a/Command/Add.hs +++ b/Command/Add.hs @@ -24,8 +24,10 @@ import Annex.Link import qualified Annex import qualified Annex.Queue #ifndef __ANDROID__ +#ifdef WTTH_CLIBS import Utility.Touch #endif +#endif import Utility.FileMode import Config import Utility.InodeCache @@ -206,12 +208,14 @@ link file key mcache = flip catchAnnex (undo file key) $ do replaceFile file $ makeAnnexLink l #ifndef __ANDROID__ +#ifdef WITH_CLIBS -- touch symlink to have same time as the original file, -- as provided in the InodeCache case mcache of Just c -> liftIO $ touch file (TimeSpec $ inodeCacheToMtime c) False Nothing -> noop #endif +#endif return l diff --git a/Command/Fix.hs b/Command/Fix.hs index da2627619..a1e30eafa 100644 --- a/Command/Fix.hs +++ b/Command/Fix.hs @@ -15,8 +15,10 @@ import Common.Annex import Command import qualified Annex.Queue #ifndef __ANDROID__ +#ifdef WITH_CLIBS import Utility.Touch #endif +#endif def :: [Command] def = [notDirect $ noCommit $ command "fix" paramPaths seek @@ -37,16 +39,20 @@ perform :: FilePath -> FilePath -> CommandPerform perform file link = do liftIO $ do #ifndef __ANDROID__ +#ifdef WITH_CLIBS -- preserve mtime of symlink mtime <- catchMaybeIO $ TimeSpec . modificationTime <$> getSymbolicLinkStatus file #endif +#endif createDirectoryIfMissing True (parentDir file) removeFile file createSymbolicLink link file #ifndef __ANDROID__ +#ifdef WITH_CLIBS maybe noop (\t -> touch file t False) mtime #endif +#endif next $ cleanup file cleanup :: FilePath -> CommandCleanup diff --git a/git-annex.cabal b/git-annex.cabal index 20ac48511..17b83796a 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -83,13 +83,8 @@ Executable git-annex base (>= 4.5 && < 4.9), monad-control, MonadCatchIO-transformers, IfElse, text, QuickCheck >= 2.1, bloomfilter, edit-distance, process, SafeSemaphore, uuid, random, dlist, unix-compat - -- Need to list these because they're generated from .hsc files. - Other-Modules: Utility.Touch Utility.Mounts - Include-Dirs: Utility - C-Sources: Utility/libdiskfree.c Utility/libmounts.c CC-Options: -Wall GHC-Options: -Wall - CPP-Options: -DWITH_CLIBS Extensions: PackageImports -- Some things don't work with the non-threaded RTS. GHC-Options: -threaded @@ -98,6 +93,13 @@ Executable git-annex GHC-Options: -O2 if (! os(windows)) + -- hsc files + Other-Modules: Utility.Touch Utility.Mounts + Include-Dirs: Utility + C-Sources: Utility/libdiskfree.c Utility/libmounts.c + CPP-Options: -DWITH_CLIBS + + if (! os(windows)) Build-Depends: unix if flag(TestSuite) |