all repos

tmux-stare @ edf6ff22d1e6932dfc124ac8162c038d8b0d17a2

session manager, but my session manager

tmux-stare/scripts/_rename_hook.sh (view raw)

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
add rename hook for native tmux session renames, 1 month ago
1
#!/usr/bin/env bash
2
CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
3
source "$CURRENT_DIR/helpers.sh"
4
5
main() {
6
  local session_id="$1"
7
  local new_name="$2"
8
  local dir="$(get_opt_dir)"
9
  local map_file="${dir}/.session_map"
10
11
  [[ -z "$session_id" || -z "$new_name" ]] && exit 0
12
13
  local old_name=""
14
  if [[ -f "$map_file" ]]; then
15
    old_name=$(awk -F'\t' -v id="$session_id" '$1 == id {print $2; exit}' "$map_file")
16
  fi
17
18
  [[ -z "$old_name" || "$old_name" == "$new_name" ]] && exit 0
19
  [[ -e "${dir}/${new_name}_last" ]] && exit 0
20
21
  local old_last="${dir}/${old_name}_last"
22
  if [[ -L "$old_last" ]]; then
23
    local actual="$(readlink "$old_last")"
24
    local actual_basename="$(basename "$actual")"
25
    local timestamp="${actual_basename: -15}"
26
    local new_actual="${dir}/${new_name}_${timestamp}"
27
    mv "$actual" "$new_actual"
28
    ln -sf "$new_actual" "${dir}/${new_name}_last"
29
    rm "$old_last"
30
  fi
31
32
  update_session_map
33
}
34
main "$@"