#!/bin/zsh
 
 function rosinit() {
-    local ROS_DISTRO=hydro
     local WORKSPACE=~/src/ros
-    if [[ -f "/opt/ros/$ROS_DISTRO/setup.zsh" ]]; then
+    local -a ROS_DISTROS
+    ROS_DISTROS=("hydro" "indigo" "jade")
+
+    local distro=$1
+    if [[ -z "$distro" ]]; then
+        for d in "${ROS_DISTROS[@]}"; do
+            [[ -f "/opt/ros/$d/setup.zsh" ]] && distro=$d
+        done
+    fi
+    if [[ -f "/opt/ros/$distro/setup.zsh" ]]; then
+        export ROS_DISTRO=$distro
         export ROS_OS_OVERRIDE=arch
         source /opt/ros/$ROS_DISTRO/setup.zsh
         source $WORKSPACE/devel/setup.zsh
         export ROS_WORKSPACE=$WORKSPACE
+        export ROS_HOME=$XDG_CACHE_HOME/ros
+        export ROS_LOG_DIR=$XDG_CACHE_HOME/ros/log
+        # export ROS_TEST_RESULTS_DIR=$HOME/.ros
         roscd
     else
-        echo "ROS $ROS_DISTRO doesn't seem to be installed." >&2
+        echo "ROS $distro doesn't seem to be installed." >&2
     fi
 }