mirror of
https://github.com/opdavies/build-configs.git
synced 2025-02-02 05:47:32 +00:00
Create .tmux
files
If `experimental.createTmuxStartupFile` is set in `build.yaml`.
This commit is contained in:
parent
8818baed58
commit
09da2bc403
|
@ -146,6 +146,13 @@ final class CreateListOfFilesToGenerate
|
|||
break;
|
||||
}
|
||||
|
||||
if (Arr::get($configurationData, 'experimental.createTmuxStartupFile') === true) {
|
||||
$filesToGenerate[] = new TemplateFile(
|
||||
data: 'common/.tmux',
|
||||
name: '.tmux',
|
||||
);
|
||||
}
|
||||
|
||||
$filesToGenerate[] = new TemplateFile(
|
||||
data: 'common/.githooks/prepare-commit-msg',
|
||||
name: 'prepare-commit-msg',
|
||||
|
|
|
@ -59,6 +59,10 @@ final class GenerateConfigurationFiles
|
|||
$this->filesystem->chmod("{$this->outputDir}/.githooks/prepare-commit-msg", 0755);
|
||||
}
|
||||
|
||||
if ($this->filesystem->exists("{$this->outputDir}/.tmux")) {
|
||||
$this->filesystem->chmod("{$this->outputDir}/.tmux", 0755);
|
||||
}
|
||||
|
||||
if ($this->filesystem->exists("{$this->outputDir}/run")) {
|
||||
$this->filesystem->chmod("{$this->outputDir}/run", 0755);
|
||||
}
|
||||
|
|
|
@ -116,6 +116,10 @@ final class ConfigDto
|
|||
new Assert\Type('bool'),
|
||||
]),
|
||||
|
||||
'createTmuxStartupFile' => new Assert\Optional([
|
||||
new Assert\Type('bool'),
|
||||
]),
|
||||
|
||||
'runGitHooksBeforePush' => new Assert\Optional([
|
||||
new Assert\Type('bool'),
|
||||
]),
|
||||
|
|
27
templates/common/.tmux.twig
Executable file
27
templates/common/.tmux.twig
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
|
||||
session_name="${1:-{{ name }}}"
|
||||
session_path="${2:-$(pwd)}"
|
||||
|
||||
if tmux has-session -t="${session_name}" 2> /dev/null; then
|
||||
tmux attach -t "${session_name}" ||
|
||||
tmux switch-client -t "${session_name}"
|
||||
fi
|
||||
|
||||
tmux new-session -d -s "${session_name}" -n vim -c "${session_path}"
|
||||
|
||||
# 1. Main window: Vim.
|
||||
tmux send-keys -t "${session_name}:vim" "nvim" Enter
|
||||
tmux split-pane -t "${session_name}:vim" -h -c "${session_path}" -p 40
|
||||
tmux send-keys -t "${session_name}:vim.right" "./run start" Enter
|
||||
|
||||
# 2. General shell use.
|
||||
tmux new-window -t "${session_name}" -c "${session_path}"
|
||||
|
||||
tmux switch-client -t "${session_name}:vim.left" ||
|
||||
tmux attach -t "${session_name}:vim.left"
|
||||
|
||||
# vim: ft=bash
|
Loading…
Reference in a new issue