Sounds interesting.  Could one attach metadata (such as a time-stamp) on a 
file-equivalent ?  If one could then see that metadata using some parameter 
to your commands (ls -l), that would make this pretty powerful, IMHO.

Thanks
Vish

On Monday, March 16, 2015 at 11:41:04 AM UTC-5, Steven Yi wrote:
>
> Hi All,
>
> I've posted a small experimental project I've been working on the past day 
> that I thought was somewhat novel called mapfs:
>
> https://github.com/kunstmusik/mapfs
>
> It allows using a Clojure map like a filesystem. An example recording of 
> it in use is here:
>
> http://kunstmusik.com/mapfs.gif
>
> The project is currently a command-line app that loads a map from an .edn 
> file and provides a shell.  You can use familiar commands like cd, rename, 
> mv, cat, and pwd to navigate key paths in the map and read/modify values.  
>
> The idea came as a result of reading all the REPL talk on clojure-dev, and 
> also that I wanted a simple way to track some data in some projects of 
> mine.  I had already started on a simple todo system but then the idea to 
> have a generic fs on a map seemed fun and more useful for creating adhoc 
> structured data for various purposes. 
>
> The result is the app acts somewhere between a REPL and shell.  You can 
> execute functions as commands, so you can do things like pipe results using 
> threading macros, i.e.:
>
> mapfs> ->> (cat :key) (str "The value of :key is ")
>
> which would format the value of the key in the current path to a string. 
>
> For my own purposes, this has been neat for recording notes and values 
> that I can later view or process with clojure functions.  I can imagine 
> having a way to extend the available commands by registering namespaces 
> from other libraries, but I'm not certain yet what way to go for that. 
>  It's somewhat at proof-of-concept stage at the moment, so there are 
> certainly bugs and things to work out, but I think it's already enough for 
> testing out the idea. Hopefully this makes making your own data and small 
> utility apps from just Clojure functions pretty easy.  (That's the goal at 
> least!)
>
> If you'd like to take it for a spin, you can clone the repo and use "lein 
> run todo.edn".  (There's also a mapfs shell script there for running with a 
> generated uberjar.) Also, running "help" in the shell shows built-in 
> functions. I'd also like to mention this uses jline[1] for console 
> processing, which provides a whole lot of great features (i.e. history, 
> vim/emacs key bindings, tab completion support).  
>
> Cheers!
> steven
>
> p.s. - I didn't see any existing projects like this, but if so, please let 
> me know, I'd be happy to learn more about them!
>
> [1] - https://github.com/jline/jline2
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to