---
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
~/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/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",
...
}