11#! /usr/bin/env bash
22
33usage () {
4- printf " Usage: $0 [options] CONTAINER_NAME\n\n"
4+ printf " Usage: %s [options] CONTAINER_NAME\n\n" " $0 "
55 printf " Setup vscode workspace for specified container\n\n"
66 printf " Options:\n"
77 printf " -h|--help\t\t Shows this help message\n"
@@ -27,7 +27,7 @@ while [ -n "$1" ]; do
2727 * )
2828 CONTAINER_NAME=" $1 "
2929 shift
30- [[ ! -z " $@ " ]] && echo -e " Invalid arguments: '$@ '\n" && usage && exit 1
30+ [ -n " $* " ] && echo -e " Invalid arguments: '$* '\n" && usage && exit 1
3131 break
3232 ;;
3333 esac
@@ -41,19 +41,19 @@ if [ -z "$CONTAINER_NAME" ]; then
4141 exit 1
4242fi
4343
44- if [ -z $( docker ps -qa --filter name=^$CONTAINER_NAME $) ]; then
44+ if [ -z " $( docker ps -qa --filter name=" ^$CONTAINER_NAME $" ) " ]; then
4545 echo " There is no container named '$CONTAINER_NAME '."
4646 exit 1
4747fi
4848
49- if [ -z $( docker ps -qa --filter name=^$CONTAINER_NAME $ --filter status=running) ]; then
49+ if [ -z " $( docker ps -qa --filter name=" ^$CONTAINER_NAME $" --filter status=running) " ]; then
5050 echo " Container '$CONTAINER_NAME ' is not running."
5151 exit 1
5252fi
5353
54- WORKING_DIR=$( docker inspect -f {{.Config.WorkingDir}} $CONTAINER_NAME )
55- ROS_DISTRO=$( docker exec $CONTAINER_NAME /bin/bash -c " printenv ROS_DISTRO" )
56- COLCON_WORKSPACE_FOLDER=$( docker exec $CONTAINER_NAME /bin/bash -c " printenv COLCON_WORKSPACE_FOLDER" )
54+ WORKING_DIR=$( docker inspect -f ' {{.Config.WorkingDir}}' " $CONTAINER_NAME " )
55+ ROS_DISTRO=$( docker exec " $CONTAINER_NAME " /bin/bash -c " printenv ROS_DISTRO" )
56+ COLCON_WORKSPACE_FOLDER=$( docker exec " $CONTAINER_NAME " /bin/bash -c " printenv COLCON_WORKSPACE_FOLDER" )
5757
5858# Take container WORKING_DIR when $COLCON_WORKSPACE_FOLDER is not defined in the container
5959COLCON_WORKSPACE_FOLDER=${COLCON_WORKSPACE_FOLDER:- $WORKING_DIR }
6666
6767# substitute env variables
6868export COLCON_WORKSPACE_FOLDER DOCKER_USER ROS_DISTRO
69- envsubst < .devcontainer.json > $CONTAINER_CONFIG_FOLDER /$CONTAINER_NAME .json
69+ envsubst < .devcontainer.json > " $CONTAINER_CONFIG_FOLDER /$CONTAINER_NAME .json"
7070
7171# copy config files to inside the container
72- docker cp ros2.code-workspace $CONTAINER_NAME :$COLCON_WORKSPACE_FOLDER /
73- docker cp .vscode-format/ $CONTAINER_NAME :$COLCON_WORKSPACE_FOLDER /
72+ docker cp ros2.code-workspace " $CONTAINER_NAME :$COLCON_WORKSPACE_FOLDER /"
73+ docker cp .vscode-format/ " $CONTAINER_NAME :$COLCON_WORKSPACE_FOLDER /"
7474
7575docker exec orise-foxy-devel apt-get install -y \
7676 python3-pip \
77- ros-$ROS_DISTRO -ament-copyright \
78- ros-$ROS_DISTRO -ament-cppcheck \
79- ros-$ROS_DISTRO -ament-cpplint \
80- ros-$ROS_DISTRO -ament-flake8 \
81- ros-$ROS_DISTRO -ament-lint-cmake \
82- ros-$ROS_DISTRO -ament-pep257 \
83- ros-$ROS_DISTRO -ament-uncrustify \
84- ros-$ROS_DISTRO -ament-xmllint
77+ ros-" $ROS_DISTRO " -ament-copyright \
78+ ros-" $ROS_DISTRO " -ament-cppcheck \
79+ ros-" $ROS_DISTRO " -ament-cpplint \
80+ ros-" $ROS_DISTRO " -ament-flake8 \
81+ ros-" $ROS_DISTRO " -ament-lint-cmake \
82+ ros-" $ROS_DISTRO " -ament-pep257 \
83+ ros-" $ROS_DISTRO " -ament-uncrustify \
84+ ros-" $ROS_DISTRO " -ament-xmllint
8585
8686docker exec orise-foxy-devel pip3 install \
8787 cmake-format \
0 commit comments