1
1
mirror of https://github.com/mgree/ffs.git synced 2024-09-11 11:15:48 +03:00
Commit Graph

111 Commits

Author SHA1 Message Date
Michael Greenberg
5a0100bfb1 change default behavior to modify newlines; update readme 2021-06-24 11:05:57 -04:00
Michael Greenberg
a02d674ae5 always autounmount 2021-06-24 10:15:40 -04:00
Michael Greenberg
4aff907523
Better mount control (issue #12; pr #24)
Mountpoints are typically inferred/generated from filenames with a -m/--mount flag for when reading from STDIN or to manually specify a mountpoint.
2021-06-24 07:06:38 -07:00
Michael Greenberg
4639d31cc6
Implement setattr (#22)
The `setattr` interface implements `chmod`, `chown`, `truncate`, and some timing related things (for, e.g., `touch`).

It's not clear I've covered _every_ base, but it certainly seems to allow for common use cases in bash without any error messages.

Comes with some nice refactors (metadata on each `Inode`, `FS::attr` is now `Inode::attr`, which simplifies some weird code that made the only the borrow checker happy---nobody else).
2021-06-23 17:36:12 -07:00
Michael Greenberg
2ec8fa6991 run tests in parallel, collect logs 2021-06-21 21:10:29 -04:00
Michael Greenberg
94917eda25
Yaml support (#14)
Adds support for YAML using [yaml_rust](https://crates.io/crates/yaml-rust).

Some compromises due to YAML funniness: compound keys will be treated as their hashes.
2021-06-21 17:36:15 -07:00
Michael Greenberg
6b5be0e0d5 remove TODO that won't quite work 2021-06-20 21:37:56 -04:00
Michael Greenberg
b48efc266c
Support other formats. (#11)
Broad refactor of how things work, moving `json.rs` to `format.rs`.

Adds support for TOML, along with CLI stuff for setting formats (which are automatically inferred from filenames).

Adds support for binary data using base64 encodings.
2021-06-20 18:20:06 -07:00
Michael Greenberg
afb359c7ff better testing of null values 2021-06-18 11:43:24 -04:00
Michael Greenberg
8345d510f4 better handling of newlines, tests 2021-06-17 20:50:43 -04:00
Michael Greenberg
66c6fbeb0b formatting 2021-06-17 20:38:10 -04:00
Michael Greenberg
cb388da9e4 quiet flag, test for quiet/inplace 2021-06-17 20:30:23 -04:00
Michael Greenberg
4d956807f6 amateur hour 2021-06-17 20:22:22 -04:00
Michael Greenberg
40768161c9 better mode checking mkdir, eliminate spurious warning 2021-06-17 20:10:42 -04:00
Michael Greenberg
bcd260906d cleaner output by default 2021-06-17 20:00:43 -04:00
Michael Greenberg
dac87cb602
Merge pull request #8 from mgree/linux-output
Use `Drop::drop` instead of `Filesystem::destroy` for output

Rejiggered the general layout of syncing. Now:

- sync really only happens in Drop::drop (but could happen elsewhere)
- sync takes a parameter to indicate if it's the last one (for Output::Stdout)
- if sync has happened before, sync only actually happens when the FS is dirty
2021-06-17 09:56:20 -07:00
Michael Greenberg
3c839e1e96 docs, cut dead code 2021-06-17 11:04:35 -04:00
Michael Greenberg
1ca333e2b6 improve sync logic 2021-06-17 10:55:26 -04:00
Michael Greenberg
9b36e65049 enforce single sync, for stdout issues 2021-06-17 10:40:30 -04:00
Michael Greenberg
1ae13c66f5 try running output test on linux, now that drop is getting called 2021-06-17 10:22:07 -04:00
Michael Greenberg
b085b76e0f better sync logic, drop impl 2021-06-17 10:18:11 -04:00
Michael Greenberg
2c01cde015 nicer log output 2021-06-17 09:56:35 -04:00
Michael Greenberg
8035a50f30 only use fuser::ReplyXTimes on macOS 2021-06-16 20:49:12 -04:00
Michael Greenberg
c910624702 add instrument calls on all Filesystem APIs 2021-06-16 20:46:10 -04:00
Michael Greenberg
867cb6bc58 drop broken test 2021-06-16 20:10:58 -04:00
Michael Greenberg
4a71042e51 try using sync 2021-06-16 20:08:13 -04:00
Michael Greenberg
0b45914f3c clearer output, pause after fsync 2021-06-16 20:04:23 -04:00
Michael Greenberg
9d0ae6d682 fsync, improved output test 2021-06-16 19:51:54 -04:00
Michael Greenberg
fef31489de and you say you're an expert on the shell 2021-06-16 19:17:39 -04:00
Michael Greenberg
b57479177c just abort on linux 2021-06-16 19:09:02 -04:00
Michael Greenberg
e7657cb1a5 try some hostility 2021-06-16 18:44:24 -04:00
Michael Greenberg
faded25aeb derp 2021-06-16 18:38:30 -04:00
Michael Greenberg
e47a7db493 bad command 2021-06-16 18:33:06 -04:00
Michael Greenberg
ec7e63e129 try using fusemount to force it 2021-06-16 18:29:29 -04:00
Michael Greenberg
1830074f32 more debug 2021-06-16 17:46:18 -04:00
Michael Greenberg
ae81a956d7 debug for linux 2021-06-16 17:40:45 -04:00
Michael Greenberg
ba64e76763 Basics of output seem to be working.
Addresses (most of) #5.
2021-06-16 17:28:45 -04:00
Michael Greenberg
3b3677f2d8 migrate TODO to issues [ci skip] 2021-06-15 15:34:56 -04:00
Michael Greenberg
9d8e084cf0 take mode as command line arg 2021-06-15 15:27:20 -04:00
Michael Greenberg
0b985d1e09 clean up cli 2021-06-15 14:59:11 -04:00
Michael Greenberg
a65e6c9783 fallocate 2021-06-15 14:44:39 -04:00
Michael Greenberg
81739b77e4 rearrange todos [ci skip] 2021-06-15 09:52:51 -04:00
Michael Greenberg
3bceb5c3d9 todo note tweaks... looking better and better 2021-06-14 21:30:37 -04:00
Michael Greenberg
520c606821 test for rename 2021-06-14 21:26:32 -04:00
Michael Greenberg
6d74ad98ea fix bug in access 2021-06-14 21:21:09 -04:00
Michael Greenberg
3e0285b2a2 fix broken unlink.sh, support access 2021-06-14 20:18:46 -04:00
Michael Greenberg
6a613084a4 rmdir, have unlink check it's a regular file 2021-06-14 20:14:12 -04:00
Michael Greenberg
d8dfe960c8 unlink 2021-06-14 19:54:04 -04:00
Michael Greenberg
b34d86c3de checking that box [ci skip] 2021-06-14 12:10:25 -04:00
Michael Greenberg
6b2b37398e math is hard 2021-06-14 12:00:39 -04:00