TARGETS
  • Read Me
  • Introduction
    • Motivation
    • Project Goals
    • What is Targets?
    • Who is Targets for?
    • Common Use Cases
    • What is a "target"?
    • What is a "composition"?
    • What is an "operation"?
    • What is a "spec"?
    • What does a Targets implementation look like?
    • Background
  • Learn Targets
    • Hello World
    • Config - Part 1
    • Config - Part 2
    • Bindings
    • Composition
    • Loaders
    • Project Structure
    • More Examples
  • Reference
    • System Requirements
    • Installation
    • Configuration
    • Settings
    • Global Store
    • Scheduler
    • Operations
      • Binding Operations
      • Predicating Operations
      • Debugging Operations
    • TTY Mode
Powered by GitBook
On this page
  1. Reference

TTY Mode

EXPERIMENTAL!

TTY-mode is NOT complete and is highly-experimental. That said, it is mostly working as of the latest release if you want to give it a go. Use it at your own discretion.

The interleaved output format is very helpful for logs when using targets on a CI system, such as Jenkins, but it can sometimes be a little hard to follow as a user. Also, what if your target results in an interactive TTY? For these reasons, targets has an experiment TTY-mode which will multiplex parallelized output streams.

Consider we were to execute two parallel targets which launched a docker TTY like so:

mycli docker.run,docker.run --docker.tty --docker.interaction --docker.name busybox -- --tty

If you add a -- at the end of your command, any additional arguments will be passed down directly to the framework. For example, for TTY-mode you can add -- --tty at the end of any command. This tells targets to run in "tty" mode.

You would then be presented with a multiplexed terminal which looks something like this:

┌───────────────────────┐┌───────────────────────────────────────────────────────┐
│docker.run,docker.run  ││                                                       │
│                       ││docker →  Running: docker run --tty busybox:latest     │
│                       ││docker →  Running: docker run --tty busybox:latest     │
└───────────────────────┘│                                                       │
┌───────────────────────┐│                                                       │
│                       │└───────────────────────────────────────────────────────┘
│docker.run - started   │┌─docker────────────────────────────────────────────────┐
│docker.run - started   ││/ #                                                    │
│                       ││                                                       │
│                       ││                                                       │
│                       ││                                                       │
│                       ││                                                       │
│                       │└───────────────────────────────────────────────────────┘
│                       │┌─docker────────────────────────────────────────────────┐
│                       ││/ #                                                    │
│                       ││                                                       │
│                       ││                                                       │
│                       ││                                                       │
│                       ││                                                       │
└───────────────────────┘└───────────────────────────────────────────────────────┘

To move between the panes, just hit Ctrl-N or Ctrl-P. To exit, hit Ctrl-C or Ctrl-Q.

Given your target has returned working TTY, as shown above, you can even interact with the shell inside any of the multiplexed panes.

PreviousDebugging Operations

Last updated 6 years ago