Permalink
Browse files

First draft for the Terminitor article

  • Loading branch information...
1 parent c01ff20 commit 1b7da3c7665c698972ad50f2cb2fcc8f8eb74a73 @jeffkreeftmeijer committed Sep 19, 2010
Showing with 48 additions and 0 deletions.
  1. +48 −0 _posts/10-09-20-terminitor.textile
@@ -0,0 +1,48 @@
+---
+layout: post
+title: "Terminitor: the Terminal automator from the future"
+excerpt: Automating your Terminal workflow to save you some keystrokes.
+published: true
+---
+
+"Terminitor":http://github.com/achiu/terminitor -- that's _not_ Termin[*a*]tor -- is a really simple Terminal workflow automation tool by "@arthur_chiu(Arthur Chiu)":http://twitter.com/arthur_chiu and the rest of the "Padrino":http://www.padrinorb.com/ "team":http://www.padrinorb.com/team. It aims to automate the terminal commands you do when you start working on a project so you don't have to start your database, web server and editor every time you want to continue your work.
+
+After installing, you create a “terminit” YAML file that defines one or more tabs with the commands you want to run. I created a little config for working on my website:
+
+{% highlight yaml %}
+# ~/.terminitor/jeffkreeftmeijer.yml
+
+- server:
+ - cd ~/opensource/jeffkreeftmeijer.com
+ - jekyll --server --auto
+- browser:
+ - sleep 5
+ - open --background http://localhost:4000
+- vim:
+ - mvim ~/opensource/jeffkreeftmeijer.com
+{% endhighlight %}
+
+This will open up three tabs in my terminal. The first one starts the "Jekyll":http://github.com/mojombo/jekyll server, with the @--auto@ flag to make it update after every change automatically. Another tab sleeps for five seconds -- giving the server a bit of time to start -- and opens localhost in a browser window behind the terminal. The last one opens the project in Vim, so I can start writing right away.
+
+To do all of the above, I simply run Terminitor's @start@ command:
+
+bc. terminitor start jeffkreeftmeijer
+
+Pretty cool, right? Be sure to check out the "README":http://github.com/achiu/terminitor/blob/master/README.md, where all of this stuff gets explained more thoroughly.
+
+h3. Checking in Termfiles?
+
+Besides storing the configuration files in the @~/.terminitor/@ directory, you can also store everyhing in a @Termfile@ right inside your project. Checking this file into "Git":http://git-scm.org would allow other developers that work on the same project to use your Terminitor workflow.
+
+This may sound like a great feature but I'm not too excited about it. First of all, I think personal configuration should never come anywhere near a source code repository since it's simply not part of the code or the application.
+
+Also, I want to be able to set up my _own_ workflow (I know using the @Termfile@ doesn't keep me from doing that) so I probably don't care about yours. If I do, I'll ask you to put it in a "Gist":http://gist.github.com.
+
+Lastly, I'd love to keep using Terminitor an option, so people who choose not to use it shouldn't have to deal with extra, meaningless configuration files flying around.
+
+I would suggest _not_ checking it in and keeping it to yourself.
+
+h3. What do you think?
+
+Overall, Terminitor is a really nice tool that saved me a bunch of keystrokes already. I'm going to keep using it and I'd love to see what will happen to it in the future. What do you think about Terminitor and the whole @Termfile@ thing? I'd love to hear your opinion.
+

2 comments on commit 1b7da3c

Hey Jeff,

thanks for the article =). About checking in the Termfiles, I do agree that the workflow is personal to each developer and that checking it in does override others to set their own custom workflow. However, what was going to be(eventually) the plan with Termfiles was to allow users to go a step further in the automation process and give them the ability to run Termfiles right off the github repo. Imagine the usual routine where a developer pulls down a project, run a few commands to setup the project( cloning the repo, bundle install, setup remotes, whatever...). Users instead could simply:

terminitor clone achiu terminitor

that would invoke:
git clone [whatever]
bundle install
git remote add [whatever],
and lastly running the usual workflow that is set in place inside the Termfile. To prevent the fact that some users want to have their own custom workflow, that could be tucked neatly inside their own .terminitor scripts. This was the plan for Termfiles eventually, let me know what you think =)

Hey Arthur,

Thanks for your reply. terminitor clone sounds promising and I've updated the article.

If you need any help, be sure to let me know. :)

Please sign in to comment.