summaryrefslogtreecommitdiff
path: root/Command/Import.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-12-02 14:48:42 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-12-02 14:49:03 -0400
commit8e7728b312704f6f4cb84d81302c1518f0e85948 (patch)
treec547f1be8464b98e18087d45188a9fbbb2dd3dfb /Command/Import.hs
parent31d4313d575a566a695d93e3e7ee34bddd41d705 (diff)
import: Changed to honor annex.largefiles settings.
Diffstat (limited to 'Command/Import.hs')
-rw-r--r--Command/Import.hs14
1 files changed, 10 insertions, 4 deletions
diff --git a/Command/Import.hs b/Command/Import.hs
index 0dbf2e44a..3887ea57b 100644
--- a/Command/Import.hs
+++ b/Command/Import.hs
@@ -19,6 +19,8 @@ import Types.KeySource
import Types.Key
import Annex.CheckIgnore
import Annex.NumCopies
+import Types.FileMatcher
+import Annex.FileMatcher
cmd :: Command
cmd = withGlobalOptions (jobsOption : fileMatchingOptions) $ notBareRepo $
@@ -64,10 +66,11 @@ seek o = allowConcurrentOutput $ do
inrepops <- liftIO $ filter (dirContains repopath) <$> mapM absPath (importFiles o)
unless (null inrepops) $ do
error $ "cannot import files from inside the working tree (use git annex add instead): " ++ unwords inrepops
- withPathContents (start (duplicateMode o)) (importFiles o)
+ largematcher <- largeFilesMatcher
+ withPathContents (start largematcher (duplicateMode o)) (importFiles o)
-start :: DuplicateMode -> (FilePath, FilePath) -> CommandStart
-start mode (srcfile, destfile) =
+start :: FileMatcher Annex -> DuplicateMode -> (FilePath, FilePath) -> CommandStart
+start largematcher mode (srcfile, destfile) =
ifM (liftIO $ isRegularFile <$> getSymbolicLinkStatus srcfile)
( do
ma <- pickaction
@@ -124,7 +127,10 @@ start mode (srcfile, destfile) =
liftIO $ if mode == Duplicate || mode == SkipDuplicates
then void $ copyFileExternal CopyAllMetaData srcfile destfile
else moveFile srcfile destfile
- Command.Add.perform destfile
+ ifM (checkFileMatcher largematcher destfile)
+ ( Command.Add.perform destfile
+ , Command.Add.performSmall destfile
+ )
notoverwriting why = do
warning $ "not overwriting existing " ++ destfile ++ " " ++ why
stop