I’ve been working on a little proof of concept idea and wanted to see
if other people liked it and perhaps wanted to see it go further.
I’ve heard a couple of calls for command line ColdFusion. I wanted to see if it could be done. My first experiment was trying to use AIR new native processes to make a command line client for ColdFusion. It didn’t pan out. But the api I used to make it was easily adaptable. I combined it with a socket listener event gateway to make a ColdFusion telnet server.
The video shows it in action.
CFConsole from Terry Ryan on Vimeo.
Like it? Want more. Let me know.
In the meantime the project is available on RIAForge.com and github, please feel free to fork it and play with it.
12 thoughts on “ColdFusion from a Console”
Wow, awesome Job Ryan!
Nice, I like the Telnet approach. I made a similar thing a while back, but used a python client for the command line interface instead and went through HTTP to get the commands to run. You can find it at http://cfshell.riaforge.org.
However, I think the real value of command line ColdFusion lies in the fact of decoupling ColdFusion from the servlet container and making it just run on top of the jvm. There, we could script like groovy does, which is also dynamic.
I would gladly pay for that!!
I demo’d a telnet client into CFMX7 at the Fusebox Conference in 2004 as part of the pre-release CFMX7 push (back when I worked at Macromedia). It’s useful to be able to telnet into a running server, set your application name and then do live debugging by running code, inspecting / updating application variables and so on.
I demo’d a bunch of new features coming in CFMX7 during that talk. I showed an application that could setup its own datasources. I think I demo’d Flash Forms too (that sounds so dated now!).
I’ll try to dig up the presentation and sample code and put it online – and if I do, I’ll post a comment back here linking to it.
This is awesome! I’ve been wanting a command-line CFML client for… well… as long as I can remember! Thank you Terry!
This looks amazing, and really cool. Just curious, what would be some real world examples where one would use this? (I’d really like to hear ideas on what this can be used for.)
I do like the idea of connecting it your application, and being able to execute commands against it. Something like “application.SomeCrazyCFC.DoThatThing()” would be nice to call actions against an application without having to write up a quick temp.cfm to run them.
Does this support evoking a CFC? Could I do CreateObject(“myCFC”).RefreshDBCache()?
This is a great proof of concept. Nice work, Terry! I’ve gotten used to having empty stub pages lying around for testing purposes. Having this sort of tool would definitely be a nice alternative to outputting things on the web front end.
Very cool! and a great concept, I would love to use this while developing as it seems like a handy tool to run while building your application and if you quickly want to output databases etc without doing a cfdump or checking your sql manager.
I think as long as it would work on Mac & Windows this would be really fun to see. Also the server telnet integration is fantastic! and a service would love to see working on our servers and to provide a service to our clients to connect to!
Hope to see more 🙂
I’d like to +1 Luis’ post about decoupling running some CFML from the HTTP request altogether. We use CF extensively for long running data processing and interfacing tasks that otherwise have no reason to go near an HTTP server and it would be useful to remove that layer from the overall complexity (including configurable things like timeouts etc.). Clearly a lot of the CFML syntax and bundled engines and libraries and so on would have little meaning in such an environment, so it’s a different audience.
Finally got around to watching this. Pretty nice. Reminds me of Interactive Ruby Shell (IRB).
I’m usually not the kind of person to post my opinion on people’s write ups, but for your article I just needed to do it. I’ve been digging around your blog a lot nowadays and I am super impressed, I think you might potentially emerge as a main opinions for this topic. Not sure what your schedule is like in life, but if you started commiting more effort to posting here, I’d guess you would begin seeing a bunch of visitors soon. With advertisements, it might emerge as a nice second revenue stream. Just something to think about. Good luck!