Commit Graph

48 Commits

Author SHA1 Message Date
f2fb4e0be0 LIB: improve safety by ignoring invalid file names for file operations 2015-12-27 20:17:14 +01:00
a81ef6a38c LIB: make deleteDirRecursive a little bit more safer 2015-12-27 20:00:28 +01:00
54af33f3a7 LIB/GTK: remove the rest of the directory package 2015-12-27 19:26:58 +01:00
5afc25d2d1 LIB: improve error handling
* close all directory streams in case of IOErrors
* raise error on invalid input types in File operations
* properly catch eXDEV in moveFile instead of all errors
2015-12-27 16:25:24 +01:00
27673b0751 LIB: make moveFile portable 2015-12-26 23:21:02 +01:00
400a0242d6 LIB/GTK: refactor ViewPatterns/PatternSynonyms 2015-12-26 22:00:08 +01:00
fa3e5b3ff9 LIB: simplify file moving 2015-12-26 21:18:42 +01:00
3bd201f1b6 LIB: add more useful pattern synonyms 2015-12-26 20:28:00 +01:00
0ec4aaac54 LIB/GTK: reduce usage of System.Directory (directory package) 2015-12-26 16:02:25 +01:00
edb51ad1f6 LIB: add createDir 2015-12-26 15:58:41 +01:00
d727566e86 LIB: don't allow empty FileName argument in createFile/renameFile 2015-12-26 03:07:36 +01:00
3639dec1d3 LIB/GTK: fix file renaming (previously called move) 2015-12-26 03:04:28 +01:00
71a2cb90be LIB/GTK: add move menuitem and implement creating new files 2015-12-25 22:51:45 +01:00
b9e4b96c4a Add GPL-2 license headers 2015-12-24 18:25:05 +01:00
2ca7df5696 LIB: style formatting 2015-12-24 05:53:11 +01:00
47aee871be LIB/GTK: improve our ViewPatterns/PatternSynonyms + refactor 2015-12-24 03:11:17 +01:00
5f183bef3f LIB/GTK: use new data structure with explicit SymLink constructor
This still needs a lot of work to function consistently, but it's better
than the old approach.
2015-12-23 22:50:04 +01:00
1aeb92d657 LIB: fix documentation in IO.File 2015-12-23 16:10:08 +01:00
09821f8fc2 LIB: implement file moving operations 2015-12-23 16:08:39 +01:00
aa1401d874 LIB: remove debug print 2015-12-22 19:49:47 +01:00
eba0c95f8c LIB: simplify symlink pattern matching via ViewPatterns/PatternSynonyms 2015-12-22 19:40:29 +01:00
2ba9620fdc LIB: update documentation 2015-12-22 14:17:46 +01:00
2486d83260 LIB/GTK: use AnchoredFile in IO.File
What's the point of having it anyway if we don't?
2015-12-22 14:15:48 +01:00
06151a3a08 LIB: minor improvement to copyDir 2015-12-21 18:54:37 +01:00
da32ccf619 LIB: improve documentation 2015-12-21 18:39:30 +01:00
773cb100b4 LIB: make recreateSymlink more robust 2015-12-21 18:36:45 +01:00
433cb164a6 LIB: improve symlink handling 2015-12-21 18:32:53 +01:00
988350967a LIB: wrap canonicalizePath so it doesn't follow the last symlink component
canonicalizePath tries to remove as many symlink components as possible,
but this is not what we want for a lot of operations like copying
files. So instead we preserve the last path component if it's a symlink
and canonicalize it's parent filepath.
2015-12-21 17:15:31 +01:00
89157bc0d9 LIB: fix IOError in copyFile
The destination file does not exist yet so we cannot canonicalize
it's full path, only part of it.
2015-12-21 05:50:19 +01:00
0867c8b2e3 LIB/GTK: add '.' and '..' files, remove fsState and improve safety
We use canonicalizePaths where we need well-formed paths and cannot
rely on the input being sane.
2015-12-21 05:41:12 +01:00
fe6145d5be LIB/GTK: change DirTree again
we now have:
* AnchoredFile -- for representing a file with context
* File         -- for representing a file only

Both representations mean "file" in the broader sense, including
directories.
2015-12-21 00:41:02 +01:00
3ba647d172 LIB/GTK: rewrite to use more atomic operations/data structures
This is a little bit less fancy, but avoids lazy IO. It depends a
little bit more on FilePath, but that also allows for a more general
interface.
2015-12-20 00:30:52 +01:00
aa5d29c41d LIB: speed up copyDir
Instead of using zipLazy (which does more IO than we need)
we just construct the newDest zipper from the information we
already have. This should be sufficient.
2015-12-18 17:33:39 +01:00
9fbe43e7d5 LIB: don't allow same source and dest in copyDir 2015-12-18 17:00:44 +01:00
58665d7b29 LIB/GTK: enhance FileOperation type so we can have partial functions
This also add a copy mode dialog to the copy operations.
2015-12-18 16:55:46 +01:00
a4849cf044 LIB: improve haddock comments 2015-12-18 15:50:33 +01:00
51fffabe22 LIB: restructure copyDir 2015-12-18 15:42:24 +01:00
0f1c8dafe8 LIB: use whenM/unlessM 2015-12-18 15:37:14 +01:00
ffe8037160 LIB: add copy modes
TODO: integrate these more nicely with runFileOp
2015-12-18 15:28:56 +01:00
34c6223c25 LIB: fix throwDirDoesExist exception type 2015-12-18 15:28:04 +01:00
e67d68ab15 LIB: improve performance of copyDir 2015-12-18 14:21:57 +01:00
7c84dce09f LIB: improve formatting style 2015-12-18 04:24:47 +01:00
d4a5460128 LIB: implement copyDir and minor refactor
We also had to lock the FileOperation type to DTInfoZipper so
we can examine symlinks and other stuff, without re-reading
all the information.
2015-12-18 04:22:13 +01:00
f2a8f21bf3 LIB: update TODO comments 2015-12-17 23:11:18 +01:00
87ad7d02f0 LIB/GTK: refactor File API and add copyFile 2015-12-17 23:08:02 +01:00
826ec65a68 LIB/GTK: use System.FilePath instead of System.FilePath.Posix 2015-12-17 17:46:55 +01:00
25f620ad75 LIB: add delete file/dir 2015-12-17 16:25:37 +01:00
d13cdac9e0 Initial commit 2015-12-17 04:42:22 +01:00