There's no I in Teamocil. At least not where you think. Teamocil is a simple tool used to automatically create windows and panes in tmux with YAML files.
This is fine when using sh(1) or compatible shells (bash, zsh...), but breaks with other shells (csh, fish) that prefer setenv or set --export. If Teamocil were to afford the ability to manipulate the environment via Ruby's ENV hash, I'd be able to write descriptions such as the following that work with different sorts of shells:
windows:
- name: ...
root: ...
env:
CC: ... # would apply to all panes in this window
CXX: .. # would apply to all panes in this window
panes:
- env: # only need to specify vars specific to this pane:
BUILD_ROOT: ...:something/Debug
PATH: ...:something/Debug/bin
- env:
BUILD_ROOT: ...:something/Release
PATH: ...:something/Release/bin
I have a Teamocil YAML file that contains a lot of snippets like:
This is fine when using
sh(1)
or compatible shells (bash, zsh...), but breaks with other shells (csh, fish) that prefersetenv
orset --export
. If Teamocil were to afford the ability to manipulate the environment via Ruby'sENV
hash, I'd be able to write descriptions such as the following that work with different sorts of shells: