enhance remote execution
This commit is contained in:
parent
6980d9ae5e
commit
8dffc3e6da
1 changed files with 49 additions and 15 deletions
64
strm
64
strm
|
|
@ -30,20 +30,24 @@ function print_controls {
|
||||||
echo -ne "\n[${text_bold}p${text_reset}] Play/Pause, [${text_bold}<${text_reset}/${text_bold}>${text_reset}] Previous/Next, [${text_bold}q${text_reset}] Quit, [${text_bold}Q${text_reset}] Save position and quit\n"
|
echo -ne "\n[${text_bold}p${text_reset}] Play/Pause, [${text_bold}<${text_reset}/${text_bold}>${text_reset}] Previous/Next, [${text_bold}q${text_reset}] Quit, [${text_bold}Q${text_reset}] Save position and quit\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function print_remote_controls {
|
||||||
|
echo -ne "\n[${text_bold}p${text_reset}] Play/Pause, [${text_bold}<${text_reset}/${text_bold}>${text_reset}] Previous/Next, [${text_bold}q${text_reset}] Quit, [${text_bold}Q${text_reset}] Save position and quit, [${text_bold}C-b d${text_reset}] Detach from session\n"
|
||||||
|
}
|
||||||
|
|
||||||
function error {
|
function error {
|
||||||
echo -ne "${text_bold}ERROR${text_reset} $1\n" >&2
|
echo -ne "${text_bold}ERROR${text_reset} $1\n" >&2
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check if mpv is installed
|
# Check if mpv is installed
|
||||||
if ! command -v mpv &>/dev/null
|
if ! command -v mpv &>/dev/null; then
|
||||||
then
|
|
||||||
error "mpv was not found, please install it"
|
error "mpv was not found, please install it"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set default values
|
# Set default values
|
||||||
config="$HOME/.config/strm/strm.config"
|
config="$HOME/.config/strm/strm.config"
|
||||||
fullscreen=false
|
fullscreen=false
|
||||||
|
is_remote_call=false
|
||||||
list=false
|
list=false
|
||||||
media_directories=""
|
media_directories=""
|
||||||
or=false
|
or=false
|
||||||
|
|
@ -71,6 +75,10 @@ while (( "$#" )); do
|
||||||
-h|--help)
|
-h|--help)
|
||||||
print_usage
|
print_usage
|
||||||
;;
|
;;
|
||||||
|
--is-remote-call)
|
||||||
|
is_remote_call=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
-l|--list)
|
-l|--list)
|
||||||
list=true
|
list=true
|
||||||
remote_arguments+=("$1")
|
remote_arguments+=("$1")
|
||||||
|
|
@ -114,24 +122,42 @@ while (( "$#" )); do
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
# Print usage if no queries were given
|
|
||||||
if [ "${#queries[@]}" == 0 ]; then
|
|
||||||
print_usage
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Execute strm on remote if argument set
|
# Execute strm on remote if argument set
|
||||||
if [ "$remote" != "" ]; then
|
if [ "$remote" != "" ]; then
|
||||||
|
|
||||||
# Invert fullscreen argument
|
# Check if strm tmux session is already running
|
||||||
if [ "$fullscreen" == false ]; then
|
if ssh "$remote" "tmux has-session -t strm &>/dev/null"; then
|
||||||
remote_arguments+=("-f")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Execute strm on remote machine
|
# Attach to tmux session
|
||||||
ssh -t "$remote" "DISPLAY=:0 strm ${remote_arguments[@]}; echo"
|
ssh -t "$remote" "tmux attach-session -t strm &>/dev/null"
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
# Print usage if no queries were given
|
||||||
|
if [ "${#queries[@]}" == 0 ]; then
|
||||||
|
echo -ne "No strm session running on ${text_bold}$remote${text_reset}, please provide a query"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Invert fullscreen argument
|
||||||
|
if [ "$fullscreen" == false ]; then
|
||||||
|
remote_arguments+=("-f")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Notify strm about remote session
|
||||||
|
remote_arguments+=("--is-remote-call")
|
||||||
|
|
||||||
|
# Execute strm on remote machine
|
||||||
|
ssh -t "$remote" "DISPLAY=:0 tmux new-session -s strm strm ${remote_arguments[@]} &>/dev/null"
|
||||||
|
fi
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Print usage if no queries were given
|
||||||
|
if [ "${#queries[@]}" == 0 ]; then
|
||||||
|
print_usage
|
||||||
|
fi
|
||||||
|
|
||||||
# If no media directory was set load config file
|
# If no media directory was set load config file
|
||||||
if [ "$media_directories" == "" ]; then
|
if [ "$media_directories" == "" ]; then
|
||||||
|
|
||||||
|
|
@ -144,7 +170,7 @@ if [ "$media_directories" == "" ]; then
|
||||||
|
|
||||||
# Throws error if still no media directory set
|
# Throws error if still no media directory set
|
||||||
if [ "$media_directories" == "" ]; then
|
if [ "$media_directories" == "" ]; then
|
||||||
error "No media directory specified"
|
error "No media directories specified"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -207,6 +233,10 @@ echo
|
||||||
# Exit if no results found
|
# Exit if no results found
|
||||||
if [ "${#sftp_results[@]}" == 0 ]; then
|
if [ "${#sftp_results[@]}" == 0 ]; then
|
||||||
echo "No files found"
|
echo "No files found"
|
||||||
|
if [ "$is_remote_call" == true ]; then
|
||||||
|
echo "Press something to quit"
|
||||||
|
read -n 1
|
||||||
|
fi
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -231,7 +261,11 @@ done
|
||||||
# Play results if --list flag not set
|
# Play results if --list flag not set
|
||||||
if [ "$list" == false ]; then
|
if [ "$list" == false ]; then
|
||||||
|
|
||||||
print_controls
|
if [ "$is_remote_call" == true ]; then
|
||||||
|
print_remote_controls
|
||||||
|
else
|
||||||
|
print_controls
|
||||||
|
fi
|
||||||
|
|
||||||
# Construct addtitional mpv arguments
|
# Construct addtitional mpv arguments
|
||||||
mpv_arguments=()
|
mpv_arguments=()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue