diff --git a/all.sh b/all.sh
new file mode 100755
index 0000000000000000000000000000000000000000..81e77c3973a8d7d0bfd1702cc4f8e50200d14f78
--- /dev/null
+++ b/all.sh
@@ -0,0 +1,4 @@
+for recipe in `ls -1 recipes | grep -v libstd`
+do
+    ./cook.sh $recipe $*
+done
diff --git a/cook.sh b/cook.sh
index c6c7ee7bf81146c200047995f9d756b96304e270..1529354064469ecb7f53235fd44dd25ad093fbf1 100755
--- a/cook.sh
+++ b/cook.sh
@@ -15,6 +15,7 @@ then
         source recipe.sh
         for arg in "${@:2}"
         do
+            echo "$1" "$arg"
             case "$arg" in
                 fetch)
                     git clone --recursive "$GIT" build
@@ -22,6 +23,13 @@ then
                 unfetch)
                     rm -rf build
                     ;;
+                pull)
+                    pushd build > /dev/null
+                    git pull
+                    git submodule sync
+                    git submodule update --init --recursive
+                    popd > /dev/null
+                    ;;
                 update)
                     pushd build > /dev/null
                     xargo update