colcon-spawn-shell

Source colcon workspaces in a new shell.


License
Apache-2.0
Install
pip install colcon-spawn-shell==0.3.0

Documentation

Colcon Spawn Shell

Introduction

This is a colcon plugin to chain workspaces in new shells. It allows quickly un-chaining workspaces by exiting the spawned shell.

The shell's prompt is edited to show the workspace order. The only supported shell is bash.

https://raw.githubusercontent.com/colcon/colcon-spawn-shell/8de6d0a687619bfd8342647b6d216695bb76dfaf/doc/colcon_spawn_shell_example.gif

Quick Start

Optional: Create and source a virtual environment.

python3 -m venv env
. env/bin/activate

From Pip

  1. Download colcon-spawn-shell from pip.

    pip install colcon-spawn-shell
  2. Build the colcon workspace you would like to spawn in a new shell.

    cd my_cool_workspace
    colcon build
  3. Source spawn_shell.bash to activate the workspace.

    . install/spawn_shell.bash

From Source

Note

It's recommended to install to a virutal environment for development. See this tutorial for more information.

  1. Download the source code for colcon-spawn-shell

    mkdir -b spawn_shell_ws/src
    cd spawn_shell_ws/src
    git clone https://github.com/colcon/colcon-spawn-shell.git
  2. Build the workspace using colcon

    colcon build
  3. Source the workspace

    . install/local_setup.bash

From now on future workspaces can be activated by sourcing spawn_shell.bash

cd my_cool_workspace
colcon build
. install/spawn_shell.bash

Contributing

  1. Fork the colcon/colcon-spawn-shell repository.

  2. Follow the "From Source" instructions, except clone your forked repository.

  3. Make changes and commit them to a branch.

    # Creat a branch for your changes
    git checkout -b my-cool-changes
    # Make your changes ...
    git commit -m "committing my changes"
    # Push them to your fork
    git push --set-upstream origin my-cool-changes
  4. Create a Pull Request from your branch to the branch develop on colcon/colcon-spawn-shell

Note

Please create pull requests from the branch develop because this repository uses the nvie git branching model.