mgree / ffs

the file filesystem: mount semi-structured data (like JSON) as a Unix filesystem
https://mgree.github.io/ffs/
GNU General Public License v3.0
463 stars 14 forks source link

directories with spaces in names 'one more' are converted to "onespacemore" #39

Closed cipy closed 3 years ago

cipy commented 3 years ago

then saved backed into JSON as "space" 👎🏻

cipy commented 3 years ago

. goes "dot"

mgree commented 3 years ago

So we need some renaming: . and .. are not legal filenames on any system, and other systems have other special characters. The current policy is in config.rs. I'm definitely not doing the right thing, though! 😓 Thoughts on what it should be instead?

I fixed the saving behavior in 726a1751637556b7ba644193c66889707e9b9b1d, where names should get properly restored. Can you try using a latest build?

cipy commented 3 years ago

I tested with yaml since I can yank/see the wrong lines faster; the bug seems to be still there. thanks,

mgree commented 3 years ago

Can you give me a concrete file that goes wrong, and tell me what you expect it to do?

cipy commented 3 years ago

nothing more than:

  1. creating a new file '{}' by hand (btw: --new gives an error)
  2. the loading ffs with it, -o anotherfile
  3. create directories containing spaces in their name "some thing"
  4. umount, go to 2.
  5. all directories have now "somespacething" and files somedotsh

btw, is it possible to compare against '.' and '..' and remove them from dir list?

mgree commented 3 years ago

Can you please create a new issue with (a) how you're invoking ffs --new and (b) the error you're getting?

Just to check: in (4), by "go to 2" you mean load anotherfile in ffs?

What do you mean by "remove them from the dir list"? It's important that calls to readdir return those entries. Did you mean just filtering out . and .. named properties?

cipy commented 3 years ago

Yes, filtering.

mgree commented 3 years ago

Got it. My plan is the following:

I'm thinking --munge rename or --munge filter to control things. I think I'd rather have renaming be the default, so that the data are at least there.

I'm going to merge #41 now---please download a new latest once it's built and test things out.

mgree commented 3 years ago

The development pre-release builds are up for Linux and macOS. I'll have another official release out soon.

Closing this issue for now. If it's still not working for you, please post:

  1. A non-empty YAML file that ffs mounts incorrectly.
  2. An explanation of how you wish it was mounted.