Skip to main content

DevStack CLI

The DevStack CLI is an easy-to-use tool that takes care of establishing an SSH connection with port-forwarding between your local machine and a Remote Development Environment (RDE). Depending on the method of source code synchronisation, it also handles file syncing.

Get Started

DevStack CLI is available on PyPI (https://pypi.org/).

Prerequisites

The following binaries must be installed to be able to install and use DevStack CLI:

  • ssh
  • ssh-keyscan
  • rsync
  • git
  • pipx

On Debian/Ubuntu the packages can be installed with

apt install openssh-client rsync git pipx

You will also need the following python packages:

  • paramiko
  • rich
  • version
  • watchdog

You can install these with pip (https://pypi.org/project/pip/).

note

On some systems you need to replace pip with pip3 in the command that follows.

pip install paramiko rich version watchdog

Installation

You can install DevStack CLI globally with pipx

pipx install devstack-cli

The installation is done when you see this:

  installed package devstack-cli 9.0.0, Python 3.8.10
These binaries are now globally available
- devstack-cli
done! ✨ 🌟 ✨

Usage

The command to start devstack-cli has the following format:

devstack-cli [-h] -H HOSTNAME -s SOURCE_DIRECTORY [-o OUTPUT_DIRECTORY] [-v]

You can find the command specific to your RDE in the self service portal, where your RDE is listed.

Once started, DevStack CLI does the following:

  • establishes an SSH connection to your RDE,
  • takes care of the port forwarding,
  • sets up the local folder (depending on the method of source code synchronisation)
  • continuously syncs the deltas (depending on the method of source code synchronisation)

Parameters

OptionDescriptionRequired
-H or --hostnameHOSTNAME. The IP or hostname of the RDE.Yes
-s or --source-directorySOURCE_DIRECTORY. A local directory where the sources from the RDE are cached.Yes
-o or --output-directoryOUTPUT_DIRECTORY. A local directory where artifacts created on the RDE are stored.No
-v or --verboseEnable debug logging.No
-V or --versionShow program's version number and exit.No