Adds tmux parallel thingy to gdl-update-todo.sh
This commit is contained in:
@@ -7,24 +7,33 @@ show_help() {
|
||||
echo "Usage: $0 [--custom-grep-search|-c <string>]"
|
||||
echo "Options:"
|
||||
# echo " --no-abort-on-found (optional) The script will not update each gallery download until it finds an already downloaded file."
|
||||
# echo " --parallel (optional) The script will update each gallery download in parallel, with background jobs."
|
||||
# echo " --parallel-jobs (optional) The script will update each gallery download in parallel, with multiple background jobs running on your operating system."
|
||||
# echo " --parallel-tmux (optional) The script will update each gallery download in parallel, with a tmux session with multiple tabs and panels."
|
||||
echo " --custom-grep-search|-c (optional) Includes a string to filter the URLs."
|
||||
}
|
||||
|
||||
should_abort_on_found=true
|
||||
should_parallel_download=true
|
||||
should_use_parallel_downloads=false
|
||||
should_use_parallel_tmux=true
|
||||
custom_grep_search=''
|
||||
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case "$1" in
|
||||
--help|-h) show_help; exit ;;
|
||||
# --no-abort-on-found) should_abort_on_found=false; shift ;;
|
||||
# --parallel) should_parallel_download=true; shift ;;
|
||||
# --parallel-jobs) should_use_parallel_downloads=true; shift ;;
|
||||
# --parallel-tmux) should_use_parallel_tmux=true; shift ;;
|
||||
--custom-grep-search|-c) custom_grep_search="$2"; shift 2 ;;
|
||||
*) shift ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if $should_use_parallel_downloads && $should_use_parallel_tmux; then
|
||||
echo "Only one (or none) of these parameters should be used:"
|
||||
echo " --parallel-jobs"
|
||||
echo " --parallel-tmux"
|
||||
fi
|
||||
|
||||
gallery_dl_path=/mnt/e/home/Documents/data-hoarding
|
||||
cd "$gallery_dl_path"
|
||||
|
||||
@@ -72,10 +81,12 @@ fi
|
||||
|
||||
sleep 5 &
|
||||
|
||||
commands_list=()
|
||||
|
||||
for url in ${urls[@]}; do
|
||||
gdl_command="$gdl_command_base $url"
|
||||
|
||||
if $should_parallel_download; then
|
||||
if $should_use_parallel_downloads; then
|
||||
gdl_command+=' &'
|
||||
fi
|
||||
|
||||
@@ -85,5 +96,71 @@ for url in ${urls[@]}; do
|
||||
echo " $gdl_command"
|
||||
fi
|
||||
|
||||
eval $gdl_command
|
||||
if $should_use_parallel_tmux; then
|
||||
# commands_list+=("$gdl_command")
|
||||
commands_list+=("$gdl_command")
|
||||
else
|
||||
eval $gdl_command
|
||||
fi
|
||||
done
|
||||
|
||||
# debug
|
||||
if false; then
|
||||
commands_list=(
|
||||
"echo foo1"
|
||||
"echo foo2"
|
||||
"echo foo3"
|
||||
"echo foo4"
|
||||
"echo foo5"
|
||||
"echo foo6"
|
||||
"echo foo7"
|
||||
"echo foo8"
|
||||
"echo foo9"
|
||||
)
|
||||
fi
|
||||
|
||||
# debug
|
||||
if false; then
|
||||
echo "Commands:"
|
||||
|
||||
for ((i = 0; i < ${#commands_list[@]}; i++)); do
|
||||
command_to_run="${commands_list[$i]}"
|
||||
|
||||
echo " $command_to_run"
|
||||
done
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if $should_use_parallel_tmux; then
|
||||
session_name="tmp_gdl-update-todo-`uuidgen | sed 's/[-]//g' | head -c 10; echo;`"
|
||||
|
||||
tmux new-session -d -s $session_name
|
||||
|
||||
current_window_num=0
|
||||
current_panel_num=0
|
||||
|
||||
for ((i = 0; i < ${#commands_list[@]}; i++)); do
|
||||
command_to_run="${commands_list[$i]}"
|
||||
|
||||
if [ "$i" -eq 0 ] || [ $(( i % 4 )) -eq 0 ]; then
|
||||
if [ "$i" -ne 0 ]; then
|
||||
tmux new-window -t $session_name
|
||||
fi
|
||||
|
||||
((current_window_num++))
|
||||
current_panel_num=1
|
||||
|
||||
tmux split-window -v -t $session_name
|
||||
tmux select-pane -t $session_name:$current_window_num.1
|
||||
tmux split-window -h -t $session_name
|
||||
tmux select-pane -t $session_name:$current_window_num.3
|
||||
tmux split-window -h -t $session_name
|
||||
fi
|
||||
|
||||
tmux select-pane -t $session_name:$current_window_num.$current_panel_num
|
||||
tmux send-keys -t $session_name "$command_to_run" Enter
|
||||
|
||||
((current_panel_num++))
|
||||
done
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user