From 201cd90ee814cc3f1c0e45b2fbca3ab665642eb4 Mon Sep 17 00:00:00 2001 From: david Date: Sat, 18 Jan 2025 14:14:54 -0600 Subject: [PATCH] Finish initial setup of tmux-sessionizer --- README.md | 6 ++ copy_configs | 14 ++--- post_config_01 | 8 +++ pre_run_01 | 6 -- run | 8 +-- runs/fzf | 2 + runs/neovim | 6 +- src_files/.local/bin/.tmux-session-hydrate | 14 +++++ .../.local/bin/.tmux-session-setup-default | 10 ---- src_files/.local/bin/tmux-sessionizer | 59 ++++++++----------- 10 files changed, 67 insertions(+), 66 deletions(-) create mode 100644 README.md create mode 100755 post_config_01 create mode 100755 runs/fzf create mode 100644 src_files/.local/bin/.tmux-session-hydrate delete mode 100644 src_files/.local/bin/.tmux-session-setup-default mode change 100644 => 100755 src_files/.local/bin/tmux-sessionizer diff --git a/README.md b/README.md new file mode 100644 index 0000000..c0d61c7 --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +### script run plan +- run `./pre_run*` scripts +- run `./run` to install/build/etc programs +- run `./copy_configs` to copy configs/scripts/executables into place +- run `./post_config*` scripts + diff --git a/copy_configs b/copy_configs index d75ad3d..daa1ce2 100755 --- a/copy_configs +++ b/copy_configs @@ -1,6 +1,6 @@ #!/bin/zsh -dry="0" +local dry="0" execute() { log "execute $@" @@ -19,10 +19,10 @@ done log "---------------- dotfiles ----------------" copy_dir() { - from=$1 - to=$2 + local from=$1 + local to=$2 pushd $from > /dev/null - dirs=(`find . -mindepth 1 -maxdepth 1 -type d`) + local dirs=(`find . -mindepth 1 -maxdepth 1 -type d`) for dir in $dirs; do [[ -d $to/$dir ]] && execute rm -rf $to/$dir execute cp -rp $dir $to/$dir @@ -31,9 +31,9 @@ copy_dir() { } copy_file() { - from=$1 - to=$2 - filename=$(basename $from) + local from=$1 + local to=$2 + local filename=$(basename $from) [[ -e $to/$filename ]] && execute rm $to/$filename execute cp -p $from $to/$filename } diff --git a/post_config_01 b/post_config_01 new file mode 100755 index 0000000..4b3f91c --- /dev/null +++ b/post_config_01 @@ -0,0 +1,8 @@ +#!/bin/zsh + +mkdirs_after_setting_shell_env_vars() { + [[ ! -d $HOMEBOX ]] && mkdir $HOMEBOX + [[ ! -d $DEVDIR ]] && mkdir $DEVDIR +} + +mkdirs_after_setting_shell_env_vars diff --git a/pre_run_01 b/pre_run_01 index b317648..bffdee2 100755 --- a/pre_run_01 +++ b/pre_run_01 @@ -8,10 +8,4 @@ mkdirs_before_copying_config_files() { [[ ! -d $HOME/.local/tmp ]] && mkdir $HOME/.local/tmp } -mkdirs_after_setting_shell_env_vars() { - [[ ! -d $HOMEBOX ]] && mkdir $HOMEBOX - [[ ! -d $DEVDIR ]] && mkdir $DEVDIR -} - mkdirs_before_copying_config_files -mkdirs_after_setting_shell_env_vars diff --git a/run b/run index 63ef645..164dfd4 100755 --- a/run +++ b/run @@ -1,7 +1,7 @@ #!/bin/zsh -single_script_filter="" -dry="0" +local single_script_filter="" +local dry="0" execute() { log "execute $@" @@ -17,10 +17,10 @@ while [[ $# > 0 ]]; do shift done -script_dir=$(cd $(dirname "${ZSH_SOURCE[0]}") &> /dev/null && pwd) +local script_dir=$(cd $(dirname "${ZSH_SOURCE[0]}") &> /dev/null && pwd) log "run // script_dir: $script_dir -- args: $single_script_filter" cd $script_dir -scripts=(`find ./runs -maxdepth 1 -mindepth 1 -type f`) +local scripts=(`find ./runs -maxdepth 1 -mindepth 1 -type f`) for script in $scripts; do if [[ -x $script ]]; then if echo "$script" | grep -qv "$single_script_filter"; then diff --git a/runs/fzf b/runs/fzf new file mode 100755 index 0000000..66d7c9c --- /dev/null +++ b/runs/fzf @@ -0,0 +1,2 @@ +#!/bin/zsh +brew install fzf diff --git a/runs/neovim b/runs/neovim index ccbbb41..68d2218 100755 --- a/runs/neovim +++ b/runs/neovim @@ -1,10 +1,10 @@ #!/bin/zsh -install_command="sudo apt install" +local install_command="sudo apt install" [[ -x $(which brew) ]] && install_command="brew install" -neovim_dir=$HOME/.local/build/neovim -neovim_version="v0.10.3" +local neovim_dir=$HOME/.local/build/neovim +local neovim_version="v0.10.3" [ ! -z $NVIM_VERSION ] && neovim_version="$NVIM_VERSION" echo "neovim_version: \"$neovim_version\"" diff --git a/src_files/.local/bin/.tmux-session-hydrate b/src_files/.local/bin/.tmux-session-hydrate new file mode 100644 index 0000000..3668964 --- /dev/null +++ b/src_files/.local/bin/.tmux-session-hydrate @@ -0,0 +1,14 @@ +#!/bin/zsh + +local omitted_dirs=( + $HOME + $HOMEBOX + $DEVDIR +) +[[ ! ${omitted_dirs[(re)$(pwd)]} ]] && + tmux new-window -d -n cmd && + tmux rename-window $EDITOR && + $EDITOR . + +clear + diff --git a/src_files/.local/bin/.tmux-session-setup-default b/src_files/.local/bin/.tmux-session-setup-default deleted file mode 100644 index 4904a74..0000000 --- a/src_files/.local/bin/.tmux-session-setup-default +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/zsh - -if [[ "$(pwd)" == $HOME || "$(pwd)" == $HOMEBOX ]]; then - clear - return -fi -tmux new-window -dn scratch -vim . -clear - diff --git a/src_files/.local/bin/tmux-sessionizer b/src_files/.local/bin/tmux-sessionizer old mode 100644 new mode 100755 index 2470c03..71ec35c --- a/src_files/.local/bin/tmux-sessionizer +++ b/src_files/.local/bin/tmux-sessionizer @@ -1,49 +1,36 @@ #!/bin/zsh switch_to() { - if [[ -z $TMUX ]]; then - tmux attach-session -t $1 - else - tmux switch-client -t $1 - fi + [[ -z $TMUX ]] && tmux attach-session -t $1 || tmux switch-client -t $1 } -has_session() { - tmux list-sessions | grep -q "^$1:" +tmux_session_exists() { + [[ -n $(pgrep tmux) ]] && tmux list-sessions | grep -q "^$1:" } hydrate() { - if [ -f $2/.tmux-sessionizer ]; then - tmux send-keys -t $1 "source $2/.tmux-session-setup" c-M - elif [ -f $HOME/.tmux-sessionizer ]; then - tmux send-keys -t $1 "source $HOME/.tmux-session-setup" c-M - fi + local tmux_hydrate_path="$HOME/.local/bin/.tmux-session-hydrate" + [[ -f $2/.tmux-session-hydrate ]] && tmux_hydrate_path="$2/.tmux-session-hydrate" + [[ -f $tmux_hydrate_path ]] && tmux send-keys -t $1 "source $tmux_hydrate_path" c-M } -if [[ $# -eq 1 ]]; then - selected=$1 -else - # If someone wants to make this extensible, i'll accept - # PR - selected=$(find ~/ ~/personal ~/personal/dev/env/.config -mindepth 1 -maxdepth 1 -type d | fzf) -fi +local search_dirs=( + $HOME + $HOMEBOX + $DEVDIR + $DEVDIR/git + $DEVDIR/git/me + $DEVDIR/git/gary + $DEVDIR/git/other +) +local selected_path='' +[[ $# -eq 1 ]] && selected_path=$1 || + selected_path=$(find $search_dirs -mindepth 1 -maxdepth 1 -type d | fzf) +[[ -z $selected_path ]] && exit 0 -if [[ -z $selected ]]; then - exit 0 -fi - -selected_name=$(basename "$selected" | tr . _) -tmux_running=$(pgrep tmux) - -if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then - tmux new-session -s $selected_name -c $selected - hydrate $selected_name $selected - exit 0 -fi - -if ! has_session $selected_name; then - tmux new-session -ds $selected_name -c $selected - hydrate $selected_name $selected -fi +local selected_name=$(basename "$selected_path" | tr . _) +! (tmux_session_exists $selected_name) && + tmux new-session -d -s $selected_name -c $selected_path && + hydrate $selected_name $selected_path switch_to $selected_name