SHPM – Simple Haskell Project Manager

Over the weekend I was playing with Haskell (by reading through Learn You a Haskell for Great Good!) and I got to the chapter on IO.  I saw that the author made a todo list manager similar to the famous “todo.txt” with just a single, short Haskell script.  I wanted to extend the example but make something with simpler code, more features, and something I would actually use.  The result?

Simple Haskell Product Manager (shpm)

It’s my first ever Haskell program more than a few lines long, and I am using it every day.  I am really loving Haskell as a language.   SHPM is mostly IO based so it’s not a great example of Haskell’s functional awesomeness, but it still shows how powerful the language is and how little boilerplate it has compared to my other favorite (Java).

SHPM manages a file called shpm.txt and keeps your todo list up to date with just a few simple commands:

shpm list -> list all tasks by project (in color)
shpm list -nc -> list all tasks by project (no color)
shpm add "Some Task" -> add "Some Task" to project "Other"
shpm add "Some Project" "Some Task" -> add "Some Task" to the project "Some Project", creating the project if necessary
shpm remove -> list all tasks and choose one to remove
shpm remove n -> remove task #n from the list

And here are some action shots:


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s