Use a strategy when fetching pane full command

This commit is contained in:
Bruno Sutic 2014-09-20 23:47:15 +02:00
parent 99abfa5f13
commit 9f7050aaae
No known key found for this signature in database
GPG Key ID: 66D96E4F2F7EF26C
4 changed files with 42 additions and 3 deletions

View File

@ -1,6 +1,8 @@
# Changelog
### master
- plugin now uses strategies when fetching pane full command. Implemented
'default' strategy.
### v1.3.0, 2014-09-20
- remove dependency on `pgrep` command. Use `ps` for fetching process names.

View File

@ -0,0 +1,24 @@
#!/usr/bin/env bash
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PANE_PID="$1"
exit_safely_if_empty_ppid() {
if [ -z "$PANE_PID" ]; then
exit 0
fi
}
full_command() {
ps -eo "ppid command" |
sed "s/^ *//" |
grep "^${PANE_PID}" |
cut -d' ' -f2-
}
main() {
exit_safely_if_empty_ppid
full_command
}
main

View File

@ -65,11 +65,22 @@ dump_panes_raw() {
tmux list-panes -a -F "$(pane_format)"
}
_save_command_strategy_file() {
local save_command_strategy="$(get_tmux_option "$save_command_strategy_option" "default")"
local strategy_file="$CURRENT_DIR/../save_command_strategies/${save_command_strategy}.sh"
local default_strategy_file="$CURRENT_DIR/../save_command_strategies/default.sh"
if [ -e "$strategy_file" ]; then # strategy file exists?
echo "$strategy_file"
else
echo "$default_strategy_file"
fi
}
pane_full_command() {
local pane_pid="$1"
ps -eo "ppid command" |
grep "^${pane_pid}" |
cut -d' ' -f2-
local strategy_file="$(_save_command_strategy_file)"
# execute strategy script to get pane full command
$strategy_file "$pane_pid"
}
# translates pane pid to process command running inside a pane

View File

@ -23,3 +23,5 @@ restore_processes=""
restore_process_strategy_option="@resurrect-strategy-"
inline_strategy_token="->"
save_command_strategy_option="@resurrect-save-command-strategy"