ignore order of queries
This commit is contained in:
parent
e531a0a956
commit
46d76ce76d
1 changed files with 18 additions and 4 deletions
22
strm
22
strm
|
|
@ -42,7 +42,7 @@ fi
|
||||||
config="$HOME/.config/strm/strm.config"
|
config="$HOME/.config/strm/strm.config"
|
||||||
list=false
|
list=false
|
||||||
shuffle=false
|
shuffle=false
|
||||||
query=""
|
query=()
|
||||||
media_directories=""
|
media_directories=""
|
||||||
|
|
||||||
# Parse arguments
|
# Parse arguments
|
||||||
|
|
@ -76,14 +76,14 @@ while (( "$#" )); do
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
query="$query\*$1"
|
query+=("$1")
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
# Print usage if no query was given
|
# Print usage if no query was given
|
||||||
if [ "$query" == "" ]; then
|
if [ "${#query[@]}" == 0 ]; then
|
||||||
print_usage
|
print_usage
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -109,6 +109,20 @@ media_directories=${media_directories//[[:blank:]]/}
|
||||||
# Read media directories
|
# Read media directories
|
||||||
IFS="," read -a media_directories <<< "$media_directories"
|
IFS="," read -a media_directories <<< "$media_directories"
|
||||||
|
|
||||||
|
# Construct find argument array
|
||||||
|
find_arguments=()
|
||||||
|
for i in "${!query[@]}"; do
|
||||||
|
|
||||||
|
# If more than one query is given add a logical AND
|
||||||
|
if [ "$i" -ge 1 ]; then
|
||||||
|
find_arguments+=("-a")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use the ipath argument to search case insensitive
|
||||||
|
find_arguments+=("-ipath")
|
||||||
|
find_arguments+=("'*${query[$i]}*'")
|
||||||
|
done
|
||||||
|
|
||||||
# Initialize result arrays
|
# Initialize result arrays
|
||||||
sftp_results=()
|
sftp_results=()
|
||||||
print_results=()
|
print_results=()
|
||||||
|
|
@ -130,7 +144,7 @@ for media_directory in "${media_directories[@]}"; do
|
||||||
|
|
||||||
# Get search results from remote
|
# Get search results from remote
|
||||||
# Look for paths matching given queries in visible directories, listing only filenames and links
|
# Look for paths matching given queries in visible directories, listing only filenames and links
|
||||||
mapfile -t tmp_results < <(ssh -o ConnectTimeout=10 "$connection_string" find "$directory" -not -path \"*/\.*\" -type l,f -ipath "$query\*" | sort)
|
mapfile -t tmp_results < <(ssh -o ConnectTimeout=10 "$connection_string" find "$directory" -not -path \"*/\.*\" -type l,f "${find_arguments[@]}" | sort)
|
||||||
|
|
||||||
# Build SFTP strings and printable strings
|
# Build SFTP strings and printable strings
|
||||||
for i in "${!tmp_results[@]}"; do
|
for i in "${!tmp_results[@]}"; do
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue