I need to install `npm` which is done by `curl http://npmjs.org/install.sh | sh` and being new to using `puppet`, I am a bit confused on how this should be done.

I am well aware of creating a `package {}` entry that invokes an `exec` target, but as I install `npm` from source, this isn't going to cut it.

I clearly don't want to build `npm` every time my `puppet` makes a pull, so I need someway to check if it is installed or not as well, so just making an `exec {}` alone isn't enough either.

What can I do?