--- layout: default navsection: userguide navmenu: Tutorials title: "Running external programs" ... h1. Running external programs This tutorial demonstrates how to use Crunch to run an external program by writting a wrapper using the Python SDK. *This tutorial assumes that you are "logged into an Arvados VM instance":{{site.basedoc}}/user/getting_started/ssh-access.html#login, and have a "working environment.":{{site.basedoc}}/user/getting_started/check-environment.html* In this tutorial, you will use the external program @md5sum@ to compute hashes instead of the built-in Python library used in earlier tutorials. Start by entering the @crunch_scripts@ directory of your git repository:
~$ cd you/crunch_scripts
Next, using @nano@ or your favorite Unix text editor, create a new file called @run-md5sum.py@ in the @crunch_scripts@ directory. notextile.
~/you/crunch_scripts$ nano run-md5sum.py
Add the following code to use the @md5sum@ program to compute the hash of each file in a collection:
{% include 'run_md5sum_py' %}
Make the file executable: notextile.
~/you/crunch_scripts$ chmod +x run-md5sum.py
Next, add the file to @git@ staging, commit and push:
~/you/crunch_scripts$ git add run-md5sum.py
~/you/crunch_scripts$ git commit -m"run external md5sum program"
~/you/crunch_scripts$ git push origin master
You should now be able to run your new script using Crunch, with "script" referring to our new "run-md5sum.py" script.
~/you/crunch_scripts$ cat >~/the_job <<EOF
{
 "script": "run-md5sum.py",
 "script_version": "you:master",
 "script_parameters":
 {
  "input": "c1bad4b39ca5a924e481008009d94e32+210"
 }
}
EOF
~/you/crunch_scripts$ arv -h job create --job "$(cat the_job)"
{
 ...
 "uuid":"qr1hi-xxxxx-xxxxxxxxxxxxxxx"
 ...
}
~/you/crunch_scripts$ arv -h job get --uuid qr1hi-xxxxx-xxxxxxxxxxxxxxx
{
 ...
 "output":"4d164b1658c261b9afc6b479130016a3+54",
 ...
}