diff --git a/run.sh b/run.sh index da589d4..ed89e96 100755 --- a/run.sh +++ b/run.sh @@ -7,47 +7,62 @@ args=() workflow=$1 declare -i multi_wrk=0 declare -i execute=1 +n=$(find /payload/workflow -name "dockermeta.knime" |wc -l) if [ "$workflow" = "--vars" ]; then echo "Workflow variables needed for executing the workflows:" echo "-----------------------------------------------------" while IFS= read -r -d $'\0'; do - echo "$(dirname ${REPLY#./workflow/})" + # Cut off the "/payload/workflow/" part because the user does not have to specify it. + if [ $n -gt 1 ]; then + name="$(dirname ${REPLY#./workflow/})" + echo "${name:18}" + fi echo -e 'Name\tType\tDefault Value' cat "$REPLY" | tr ':' '\t' echo "========" done < <(find "/payload/workflow" -name dockermeta.knime -print0) execute=0 elif [ "$workflow" = "--info" ]; then - echo "Workflows:" - echo "-----------------------------------------------------" - while IFS= read -r -d $'\0'; do - echo "$(dirname ${REPLY#./workflow/})" - done < <(find "/payload/workflow" -name dockermeta.knime -print0) + if [ $n -gt 1 ]; then + echo "Workflows:" + echo "-----------------------------------------------------" + while IFS= read -r -d $'\0'; do + name="$(dirname ${REPLY#./workflow/})" + echo "${name:18}" + done < <(find "/payload/workflow" -name dockermeta.knime -print0) + fi echo "-----------------------------------------------------" echo "Installed features:" echo "-----------------------------------------------------" - cat features + cat /payload/meta/features execute=0 elif [ "$workflow" = "--help" ]; then echo "Help:" echo "To run the image and mount a folder in the container:" - echo "docker run -v : =" - echo "Eg: docker run -v /User/MyUser/Documents/Data:/data myworkflowGroup mySubGroup/myworkflow input_file=test.csv" + if [ $n -gt 1 ]; then + echo "docker run -v : =" + echo "Eg: docker run -v /User/MyUser/Documents/Data:/data myworkflowGroup mySubGroup/myworkflow input_file=test.csv" + echo "" + echo "To list contained workflows and installed features:" + echo "docker run -rm --info" + elif [ $n == 1 ]; then + echo "docker run -v : =" + echo "Eg: docker run -v /User/MyUser/Documents/Data:/data myworkflowGroup input_file=test.csv" + echo "" + echo "To list installed features:" + echo "docker run -rm --info" + fi echo "" echo "To list the workflows' variables:" echo "docker run -rm --vars" - echo "" - echo "To list contained workflows and installed features:" - echo "docker run -rm --info" + execute=0 fi -n=$(find /payload/workflow -name "dockermeta.knime" |wc -l) - #check for amount of workspace if [ $n == 0 ]; then - echo "NON WORKSPACE FOUND. Check if the workflow directory is correctly specified" + echo "No workflow found. Check if the workflow directory was correctly specified during the build." elif [ $n == 1 ]; then wrk="${@:1}" workflow="" @@ -59,12 +74,11 @@ elif [ $n -gt 1 ]; then # Check if file exists if [[ $execute == 1 && ! -f "/payload/workflow/$workflow/dockermeta.knime" ]] then - >&2 echo "Workflow not found. Check the name of the workflow." + >&2 echo "Workflow not found. Check the workflow name. Run the image with --info to see the contained workflows." n=0 fi fi - if [[ $execute == 1 && $n -gt 0 ]] ; then for var in $wrk do