diff --git a/scripts/ros-generate-recipes.sh b/scripts/ros-generate-recipes.sh new file mode 100644 index 0000000..2b522e8 --- /dev/null +++ b/scripts/ros-generate-recipes.sh @@ -0,0 +1,72 @@ +# /bin/sh (deliberately no !#) +# +# Usage: cd meta-ros +# sh scripts/ros-generate-recipes.sh ROS_DISTRO +# (current branch is now superflore/DATETIME) +# +# XXX Once superflore is fixed to generate only recipes when given --only, have this script recognize optional PKG1 PKG2 ... +# arguments that cause "--only PKG1 PKG2 ..." to be passed to superflore. +# +# Copyright (c) 2019 LG Electronics, Inc. + +SCRIPT_NAME="ros-generate-recipes" +SCRIPT_VERSION="1.0.0" + +usage() { + echo "Usage: sh $SCRIPT_NAME.sh ROS_DISTRO" + echo " sh $SCRIPT_NAME.sh --version" + exit 1 +} + +# XXX Eventually, this test will be changed to [ $# -eq 0 ] +[ $# -ne 1 ] && usage + +if [ $1 = "--version" ]; then + echo "$SCRIPT_NAME $SCRIPT_VERSION" + exit +fi + +# XXX "export" might not be needed. +export ROS_DISTRO=$1 + +# ROS_VERSION and ROS_PYTHON_VERSION must be in the environment as they appear in "conditional" attributes. +case $ROS_DISTRO in + "kinetic"|"melodic") + export ROS_VERSION="1" + export ROS_PYTHON_VERSION="2" + ;; + + "bouncy"|"crystal"|"dashing") + export ROS_VERSION="2" + export ROS_PYTHON_VERSION="3" + ;; + + *) echo "ABORT: Unrecognized ROS_DISTRO: $ROS_DISTRO" + exit 1 + ;; +esac + +skip_keys_option="" +case $ROS_DISTRO in + "kinetic") + skip_keys_option="--skip-keys catkin_virtualenv flatbuffers octovis" + ;; + + "melodic") + skip_keys_option="--skip-keys catkin_virtualenv flatbuffers iirob_filters octovis" + ;; + + "bouncy") + skip_keys_option="--skip-keys console_bridge" + ;; + + *) : Nothing is skipped for "crystal" and "dashing". + ;; +esac + +shift +only_option="" +[ $# -gt 0 ] && only_option="--only $*" + +superflore-gen-oe-recipes --dry-run --ros-distro $ROS_DISTRO --output-repository-path . --upstream-branch HEAD \ + $skip_keys_option $only_option