Commit Graph

296 Commits

Author SHA1 Message Date
Martin Bertschler f0b9fc1bdb Implement and test read only MemMapFs file handles
Fixes #53
2016-01-04 01:54:48 +01:00
Martin Bertschler 023640316a Merge pull request #55 from spf13/multiple-mem-file-handles
Seperate MemMapFs file data and file handles
2016-01-04 00:59:32 +01:00
Martin Bertschler a5f01f1106 replace mem.File handles with mem.FileData when mem.FileData is all we need 2016-01-04 00:36:01 +01:00
Martin Bertschler 0321b04b21 fix mem.DirMap and mem.Dir to only use *FileData and not *File handles 2016-01-04 00:18:26 +01:00
Martin Bertschler 7096d68458 mem.File is now mem.FileData and mem.File is a file handle with a pointer to a mem.FileData 2016-01-03 23:59:42 +01:00
Martin Bertschler 7b991cb257 add a test that fails if MemMapFs has the same `at` counter for multiple file objects 2016-01-03 22:11:08 +01:00
Jerry Jacobs a34aa3adc4 README: Add xor-gate as author 2016-01-02 14:38:54 +01:00
Jerry Jacobs 719e24f1e2 Dont read HOME/.ssh/id_rsa, create todo 2016-01-02 14:24:58 +01:00
Jerry Jacobs acdc8aab04 * Cleanup and add some todos 2016-01-02 14:12:59 +01:00
Jerry Jacobs 7d5dacc912 * Generate RSA key and spawn SFTP server for test 2016-01-02 14:00:20 +01:00
Jerry Jacobs 3f46b4f31f sftp_test.go: Fixup import path 2015-12-26 20:43:55 +01:00
Jerry Jacobs 90ff561dda Add SftpFs beta backend 2015-12-26 20:36:25 +01:00
Hanno Hecker e7cb826c1f update README to match the filters 2015-12-21 13:34:19 -05:00
Hanno Hecker f4b37b446e Add RegexpFilter
- rework FilterFs to be truely chaining, i.e. every call not intercepted
  must be passed to the source Fs
- AddFilter accepts just a FilterFs, not a Fs
- FilterFs' AddFilter(FilterFs) should be implemented by any
  FilterFs like

  func (f *myFilter) AddFilter(fs FilterFs) {
       fs.SetSource(f.source)
       f.source = fs
  }
2015-12-21 13:34:19 -05:00
Martin Bertschler 98ed0a3409 return improved errors from MemMapFs methods
MemMapFs.Mkdir now returns an error if the file or dir already exists
MemMapFs.Remove now returns an error if the file or dir doesn't exists

fixes #43
2015-12-20 22:09:09 +01:00
Bjørn Erik Pedersen 2101bdf57c Unexport the RWMutex in MemMapFs 2015-12-18 21:26:04 +01:00
Bjørn Erik Pedersen 7e65370ebb Remove unused mutex 2015-12-18 19:49:23 +01:00
Bjørn Erik Pedersen 75b0bd216a Fix data races in MemMapFs
Also simplifiy the lock constructs.

Fixes #44
Fixes #45
2015-12-18 19:20:45 +01:00
Hanno Hecker 36b075cbbf show how filtering is used 2015-12-15 18:18:10 +01:00
Hanno Hecker 03c0cb5702 drop filter_regexp for now, needs some more changes for reading dirs 2015-12-15 18:17:36 +01:00
Hanno Hecker 8c337dcc24 block all write flags instead of checking for O_RDONLY 2015-12-13 18:12:18 +01:00
Hanno Hecker 3b1997ba29 add Fs filter 2015-12-13 14:56:00 +01:00
Martin Bertschler 9d44c3003b add a test for twice calling Create on the same path 2015-12-11 11:02:03 +01:00
Steve Francia 12f79b29b2 Update mem to keep things private 2015-12-10 15:13:36 -05:00
Steve Francia 4b2ab283a0 add debugging method for MemMapFs 2015-12-10 15:13:17 -05:00
Steve Francia 69df1e98f2 Improve testing output 2015-12-10 15:13:17 -05:00
Steve Francia 99f1ddeda3 reposition gitter badge 2015-12-10 13:14:25 -05:00
Steve Francia c42b320414 Merge pull request #38 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2015-12-10 13:13:25 -05:00
The Gitter Badger fffa47e80f Add Gitter badge 2015-12-10 18:05:16 +00:00
Martin Bertschler 37f7afc8d7 Fix artefacts from moving MemMapFs types into subpackage mem 2015-12-10 18:55:43 +01:00
Steve Francia 99c3e9a2c7 Release 0.10 of Afero 2015-12-10 12:26:46 -05:00
Steve Francia b5982947d7 Clarify naming in readme
fixes #28
2015-12-10 12:26:46 -05:00
Steve Francia 508533e0fc Adding utilities to readme 2015-12-10 12:26:46 -05:00
Steve Francia 965d098e7c Moving memory structures and interfaces into sub package 2015-12-10 12:26:38 -05:00
Martin Bertschler ede672fd82 Merge pull request #36 from moorereason/iss35
Fix closing and deleting of files in tests
2015-12-10 12:18:13 +01:00
Cameron Moore 85a9c733f6 Fix closing and deleting of files in tests
A few things are fixed by this commit:

- check error value returned from `fs.RemoveAll` in `removeAllTestFiles`.
- Defer statements are a LIFO, and were out of order in some test functions.
- The TestReaddir* funcs were failing to close some file handles.
- `findNames` was opening file handles but ignoring them.  Bad.
2015-12-09 23:35:59 -06:00
Martin Bertschler 90b5a9bd18 Fix TestWalk to use the new setup functions and make it Windows ready
I had to wrap the setupTestFiles() function for this test, one for returning the root of the test dir and the other one to reuse the path that was returned from the first function. If this is not done setupTestDir writes into two different folders that are returned from os.TempDir() and the output of the two walk functions can't be compared.
2015-12-09 23:34:42 +01:00
Steve Francia 943d877c43 Fix remaining Windows bugs and tests 2015-12-09 15:37:15 -05:00
Martin Bertschler 9d86e5d5fa Update AppVeyor config to fetch dependencies 2015-12-09 10:05:28 +01:00
Steve Francia daf7a87d8f Make "findParent" work on Windows properly
Fixes #31
2015-12-08 21:48:19 -05:00
Steve Francia e042b5f805 making the fs property accessible Afero.fs -> Afero.Fs 2015-12-08 16:26:39 -05:00
Steve Francia 28bccc4ad0 reorder all utility functions to have fs as 1st param
This is a BREAKING CHANGE to the Walk and ReadDir functions that
existed prior to this branch addition. This change is not done without
considerable thought.

Having FS come first is done for two reasons.
1: It's more idiomatic go
2: It's more logical. It allows the function signature to read easier
and flow from the broadest value to the most narrow.

For example, WriteReader would read..
writeReader on this fs, to this path (on that fs),
with this data (at that path, on that fs).

I believe that when the first two were implemented it wasn't at all
obvious that the order wasn't correct, nevertheless, permitting a
lot of new functions defined in an incorrect or inconsistent order
seems like the worst option.

It was decided that a breaking change today would be best, even if it
was mildly painful at the present.
2015-12-08 16:26:39 -05:00
Steve Francia 90555c1894 reorganize utils into afero package 2015-12-08 16:26:38 -05:00
Steve Francia 3a517135a5 Adding Afero/utils
Portions ported from Go StdLib ioutils
Portions ported from Hugo's helpers
2015-12-08 16:24:09 -05:00
Steve Francia f50d862134 Adding "/" to MemMapFS in a cleaner way 2015-12-08 16:24:09 -05:00
Steve Francia a9385f2db9 Removing extra normalize call
(since open already normalizes)
2015-12-08 16:24:09 -05:00
Steve Francia 54ad8f690d MkdirAll should respect permissions (MemMapFS) 2015-12-08 16:24:09 -05:00
Martin Bertschler adb80c3cf7 Fix AppVeyor badge 2015-12-08 18:08:37 +01:00
Martin Bertschler 708d4bcfd5 Fix walk function in test to not panic if an error is passed 2015-12-06 16:25:06 +01:00
Martin Bertschler 17333d8c34 Integrate AppVeyor config file 2015-12-06 12:29:59 +01:00