42 lines
1.4 KiB
Plaintext
42 lines
1.4 KiB
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
watch () {
|
||
|
mpv "$1"
|
||
|
clear
|
||
|
read -p 'Did you finish watching? [Y/n]: ' yn
|
||
|
while true; do
|
||
|
if [ -z "$yn" ] || [ "$yn" = "Y" ] || [ "$yn" = "y" ]; then
|
||
|
name=$(printf '%s\n' "$1" | sed 's:./::g')
|
||
|
printf '%s\n' "$name" >> "$2"
|
||
|
break
|
||
|
elif [ "$yn" = "N" ] || [ "$yn" = "n" ]; then
|
||
|
break
|
||
|
fi
|
||
|
read -p 'Try again? [Y/n]: ' yn
|
||
|
done
|
||
|
}
|
||
|
|
||
|
# check () {
|
||
|
#
|
||
|
# }
|
||
|
|
||
|
# config
|
||
|
[ ! -d "$HOME/.config/watcher" ] && mkdir -p "$HOME/.config/watcher/"
|
||
|
[ ! -f "$HOME/.config/watcher/config" ] && touch "$HOME/.config/watcher/config"
|
||
|
directory=$(cat $HOME/.config/watcher/config | grep 'directory' | cut -d= -f 2)
|
||
|
exclude=$(printf '! -name %s ' $(cat $HOME/.config/watcher/config | grep 'exclude' | cut -d= -f 2 | sed 's/;/\n/g'))
|
||
|
|
||
|
# watchlist
|
||
|
[ ! -f '$HOME/.cache/watchlist' ] && touch "$HOME/.cache/watchlist"
|
||
|
[ -s "$HOME/.cache/watchlist" ] && watchlist=$(printf '! -name %s ' $(cat $HOME/.cache/watchlist)) || watchlist=""
|
||
|
|
||
|
cd $directory
|
||
|
|
||
|
while true; do
|
||
|
current_dir=$(basename $(pwd))
|
||
|
choice=$(find -maxdepth 1 -mindepth 1 $exclude $watchlist | sort | fzf -i --prompt "Current directory: $current_dir ")
|
||
|
[ -z "$choice" ] && clear && exit
|
||
|
[ -d "$choice" ] && cd "$choice"
|
||
|
[ -f "$choice" ] && watch "$choice" "$HOME/.cache/watchlist" && watchlist=$(printf '! -name %s ' $(cat $HOME/.cache/watchlist))
|
||
|
done
|