Trans, thanks I had a look at their mailing list and they had a few
nice examples of how something like this can be used, some of which
are included here:

* methods added to filetypes
  * >> somesong.mp3.play
  * >> some.jpg.rotate(90).view
  * >> somefile.extension.defaultopen("/usr/bin/somebinary")
  * >> somefile.extension [which would open it using somebinary]

* custom global objects
  * >> db.somedatabase.sometable.find_all [active_record could be used here]
  * >> apache.config.port = 81 [Not sure how this would work ?
read/write the .conf file ?]
  * >> apache.restart
  * >> samba.config.global.security = user

Unfortunately *nix config files dont follow some sort of standard like
xml, which could have make this alot easier.

Then obviously chaining of commands
  * [grep something] | invoke a graphing application which will show
the number of ocurrances by filename with a bar chart
  * gimp.applyfilter(gimp.filters.blur) | email.send("blured
image","someone / somewhere.com")

There was a suggestion of using opengl for the command line, which
could add some nice functionality:
  * The cli then becomes more of an ide, a combo box could be popped
up for command suggestions instead of the usual list of commands which
saves space.
  * images could be displayed on the cli iteself
  * a nice graph of the chained commands could be displayed with each
command's projected inputs and outputs for the current fsm [Could be
generated by doxygen]

I think this would be a nice project to help unify available
applications/libs on *nix.

jm, the very simple commands included in my previous post are:

class Ls < Command

    respond_to "ls"

    def begin_command(args)
        args = "*" if args == ""
        $objects = Dir.glob(args)
    end

end

class Bracket < Command

    respond_to "b"

    def begin_command(args)
        $objects.map!{|o| "("+o.to_s+")"}
    end

end

They can then be used by doing
>> ls *.rb | b | b
which would print out all the .rb files each having two brackets around them.

The basic idea currently uses a global $objects to keep track of the
current objects, which I'm not yet convinced is the best solution.

Anybody interested in something like this ?

http://reyn.co.za/rush.tar.gz

On 8/18/05, Trans <transfire / gmail.com> wrote:
> There's been some discussion on this with regards to R:O:S. You might
> want to dig that up on Rubyforge.
> 
> 
> 


-- 
Reyn Vlietstra