asdf
1# -*- sh -*-
2
3list_command() {
4local plugin_name=$1
5local query=$2
6
7if [ -z "$plugin_name" ]; then
8local plugins_path
9plugins_path=$(get_plugin_path)
10
11if find "$plugins_path" -mindepth 1 -type d &>/dev/null; then
12for plugin_path in "$plugins_path"/*/; do
13plugin_name=$(basename "$plugin_path")
14printf "%s\n" "$plugin_name"
15display_installed_versions "$plugin_name" "$query"
16done
17else
18printf "%s\n" 'No plugins installed'
19fi
20else
21check_if_plugin_exists "$plugin_name"
22display_installed_versions "$plugin_name" "$query"
23fi
24}
25
26display_installed_versions() {
27local plugin_name=$1
28local query=$2
29local versions
30local current_version
31local flag
32
33versions=$(list_installed_versions "$plugin_name")
34
35if [[ $query ]]; then
36versions=$(printf "%s\n" "$versions" | grep -E "^\s*$query")
37
38if [ -z "${versions}" ]; then
39display_error "No compatible versions installed ($plugin_name $query)"
40exit 1
41fi
42fi
43
44if [ -n "${versions}" ]; then
45current_version=$(cut -d '|' -f 1 <<<"$(find_versions "$plugin_name" "$PWD")")
46
47for version in $versions; do
48flag=" "
49if [[ "$version" == "$current_version" ]]; then
50flag=" *"
51fi
52printf "%s%s\n" "$flag" "$version"
53done
54else
55display_error ' No versions installed'
56fi
57}
58
59list_command "$@"
60