Added README, noted a couple of ideas/TODOs

This commit is contained in:
Suzanne Soy 2023-10-17 00:31:02 +02:00
parent 43cb210074
commit 2043072a87
3 changed files with 18 additions and 2 deletions

2
README.md Normal file
View File

@ -0,0 +1,2 @@
Similar projects by other people:
* https://github.com/mikeswain/cmdfs From what I understand, cmdfs needs to run the command on all files ahead of time in order to know the generated file size. It also seems to be more geared towards running a single command (e.g. convert ogg to mp3, or convert png to jpeg). I want to run different commands, and want them to be executed only when the file is accessed.

10
fs.py
View File

@ -203,4 +203,12 @@ def main(source, cache, mountpoint):
FUSE(FilterFS(source, cache), mountpoint, nothreads=True, foreground=True, direct_io = True)
if __name__ == '__main__':
main(sys.argv[1], sys.argv[2], sys.argv[3])
main(sys.argv[1], sys.argv[2], sys.argv[3])
# TODO: an option to check that commands are signed with a trusted GPG key before executing them
# This would allow the user to run this on a filesystem containing a mix of trusted and
# untrusted files (e.g. tar -zxf untrusted-downloaded-file.tar.gz is dangerous). In order to
# prevent replay attacks, the signed data should include things like the path to the
# symlink-command (otherwise re-using that signed symlink-command in another location with
# different files could be used to change the semantics of the command), and/or the inputs
# (the command itself and the hash of the input files)

View File

@ -56,4 +56,10 @@ else
printf '\033[1;31mFailure\033[m\n'
fusermount -u test/mnt || kill -KILL $pid
exit 1
fi
fi
# TODO: tests for ctime
# e.g. using https://serverfault.com/questions/520322/unix-ctime-how-to-keep-this-precious-information-in-backups-tar
# or https://www.halfgaar.net/backing-up-unix
# or simply find -print0 | xargs -0 stat
# Note that on ext4 we can't access this information without root permissions: https://unix.stackexchange.com/questions/50177/birth-is-empty-on-ext4