
Show HN: Bashfs – Run commands as your filesystem - __init
https://github.com/pcgrosen/bashfs
======
jasonhansel
I worked on a semi-similar project, to let people turn bash scripts into FUSE
filesystems:
[https://github.com/jasonhansel/microfs](https://github.com/jasonhansel/microfs)

For example, this script is used to make a FS that turns the web into a
filesystem, so reading /www.google.com/GET will show the Google homepage:
[https://github.com/jasonhansel/microfs/blob/master/http.sh](https://github.com/jasonhansel/microfs/blob/master/http.sh)

~~~
threeme3
microfs looks interesting to me, but unfortunately crashes with a SEGFAULT on
Ubuntu 19.04:

Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7de88b8 in
__GI__IO_fread (buf=buf@entry=0x7fffffffd4f0, size=size@entry=1,
count=count@entry=1024, fp=0x0) at iofread.c:35

~~~
jasonhansel
This was a school project that only had to compile on one specific machine.

I may rewrite it in Rust (probably with lots of new features) if there is
interest.

------
Hnrobert42
No, but really, why? I am not putting it down. I just don’t understand what is
happening exactly, and the why might help.

~~~
PopeDotNinja
They address this in the README.

[https://github.com/pcgrosen/bashfs#why](https://github.com/pcgrosen/bashfs#why)

~~~
Dylan16807
I appreciate the attempt to help, but I disagree.

The README "addresses" a question of "why?". But because that's not a real
answer, it's not a valid response to " _but really_ why?"

~~~
chmod775
"Why not?" here is an idiom for "I know it serves little purpose but I did it
for the fun of tinkering with stuff."

~~~
Dylan16807
"Why not?" can mean a _lot_ of different things. That's why it can be helpful
to get an actual answer.

~~~
PopeDotNinja
I thing the "Why not?" is another way of saying that you've put more effort
into understanding the motivation behind this project than OP did.

~~~
Dylan16807
That would be wasted effort, though. Sure, I can come up with a dozen
potential reasons. But I want to know the _actual_ reason(s).

~~~
PopeDotNinja
I can't tell if you're trolling. Sometimes I do stuff because "Why not?"
sounded like a good idea, and I reckon others do, too. That's all I've got.

------
pcr910303
There's a lot of 'Why?'s here, what I feel from this is that the FS can now be
a turing-complete system. This will allow to extend the 'Everything is a file'
concept in UNIX (whether it's good or bad is a different question;) to
computation.

With BashFS, computation & interaction with other programs is now a file; we
can 'open' a appropriate file instead of managing subprocesses anymore!

This (at least to me) blur the difference between UNIX (where everything
should be a file) and LispMachines (where everything is a Lisp object).

~~~
TazeTSchnitzel
Check out Plan 9.

------
YesThatTom2
Go home, coder. You’re drunk!

~~~
high_5
Why not? :-D

~~~
YesThatTom2
To be clear... I live this. It’s must have been very fun to write and he
learned a lot about writing a file system. Learning for the sake of learning
is great!

------
ORioN63
Is there something like FUSE for a single file?

My use case is for pass. I like to keep my secret files in there, but I still
have plain text redudancy, because, well, encrypted files are useless while
encrypted.

I would like to have a "virtual file" which any program could accept as its
config file where I could control the results of `read()`

In my case, I would associate the current file to its pass equivalent, decrypt
the pass equivalent and return the decrypted data.

~~~
dallbee
Sure, fuse actually implements the lesser known CUSE protocol as well. Stands
for character device in user space, and does exactly what you describe.

------
agucova
We've come so far as a society, it's amazing.

------
rambojazz
Is there any way this can be useful for something? Or is it just a fun
experiment with FUSE?

~~~
jarfil
Possibly the most useful part might be the patch to upstream pyfuse3 proposed
by the author, and as a reference implementation for something similar that
might be useful on itself.

------
xg15
So what happens if I do ls mnt or find mnt?

Also, this looks like the perfect thing to mount to a /htdocs directory or
nfs-accessible folder :)

------
kristopolous
There may be a clever way to subvert scponly and the nologin related commands
with this.

Still piecing it together but maybe

------
riquito
Visionary, it was fun to see

------
asimjalis
Beautiful.

------
tfowler
Don't see much difference than something like

$ cat <(my_favorite_script)

