pipetmuxinator

tmuxinator: Escape pipe character


I encountered the following problem: I can't escape the pipe sign in the tmuxinator config.

tmuxinator does not generate the output for the two commands for the Tests window. Everything else works like expected.

I tried to escape the pipe sign | with a backslash \ and tried to wrap the string in single- and double quotes.

I checked the commands which will be executed with tmuxinator debug

Here is my tmuxinator config file:

name: PyCIn
root: /srv/PyCIn/
pre_window:
  - source venv/bin/activate
  - clear
windows:
  - Git: # placeholder
  - Run:
    - clear
    - TRAVIS=true GH_TOKEN=asdf python -m pycin inspect
  - Tests:
    layout: main-horizontal
    panes:
    - ag -l | entr -c make pep8
    - ag -l | entr -c make tests-coverage

Does any1 have a hint for me? :)

For the record:

ag searches all files with the given text (here none, so list all files)

entr executes the given command when any of the file changes

Here is the complete file as gist. Copy pasted from the editor


Solution

  • In my experience, pipes work as expected in Yaml/Tmuxinator, which makes me think this is a Yaml indentation issue. After tweaking the indentation in your config file, ag -l pipes its output as expected.

    # /home/yfr/.config/tmuxinator/PyCIn.yml
    
    name: PyCIn
    # root: /srv/PyCIn/
    pre_window:
      - source venv/bin/activate
      - clear
    windows:
      - Git: # placeholder
      - Run:
          - clear
          - TRAVIS=true GH_TOKEN=asdf python -m pycin inspect
      - Tests:
          layout: main-horizontal
          panes:
            #- ag -l | entr -c make pep8
            #- ag -l | entr -c make tests-coverage
            - ag -l | xargs
            - ag -l | xargs