asdf

Форк
0
/
command-help.bash 
116 строк · 3.1 Кб
1
# -*- sh -*-
2
# shellcheck source=lib/functions/versions.bash
3
. "$(dirname "$(dirname "$0")")/lib/functions/versions.bash"
4

5
asdf_help() {
6
  printf "version: %s\n\n" "$(asdf_version)"
7
  cat "$(asdf_dir)/help.txt"
8
}
9

10
asdf_moto() {
11
  cat <<EOF
12

13
"Late but latest"
14
-- Rajinikanth
15
EOF
16
}
17

18
asdf_extension_cmds() {
19
  local plugins_path plugin_path ext_cmd_path ext_cmds plugin
20
  plugins_path="$(get_plugin_path)"
21
  for plugin_path in "$plugins_path"/*/; do
22
    plugin="$(basename "$plugin_path")"
23
    ext_cmd_path="$plugin_path/lib/commands"
24
    ext_cmds="$(find "$ext_cmd_path" -name "command*.bash" 2>/dev/null)"
25
    if [[ -n $ext_cmds ]]; then
26
      printf "\nPLUGIN %s\n" "$plugin"
27
      for ext_cmd in $ext_cmds; do
28
        ext_cmd_name="$(basename "$ext_cmd")"
29
        sed "s/-/ /g;s/.bash//;s/command-*/  asdf $plugin/;" <<<"$ext_cmd_name"
30
      done | sort
31
    fi
32
  done
33
}
34

35
help_command() {
36
  local plugin_name="$1"
37
  local tool_version="$2"
38
  local plugin_path
39

40
  # If plugin name is present as first argument output plugin help info
41
  if [ -n "$plugin_name" ]; then
42
    plugin_path=$(get_plugin_path "$plugin_name")
43

44
    if [ -d "$plugin_path" ]; then
45
      if [ -f "${plugin_path}/bin/help.overview" ]; then
46
        if [ -n "$tool_version" ]; then
47

48
          # TODO: Refactor this code out into helper functions in utils.bash
49
          IFS=':' read -r -a version_info <<<"$tool_version"
50
          if [ "${version_info[0]}" = "ref" ]; then
51
            local install_type="${version_info[0]}"
52
            local version="${version_info[1]}"
53
          else
54
            local install_type="version"
55

56
            if [ "${version_info[0]}" = "latest" ]; then
57
              local version
58
              version=$(latest_command "$plugin_name" "${version_info[1]}")
59
            else
60
              local version="${version_info[0]}"
61
            fi
62
          fi
63

64
          local install_path
65
          install_path=$(get_install_path "$plugin_name" "$install_type" "$version")
66

67
          (
68
            # shellcheck disable=SC2031
69
            export ASDF_INSTALL_TYPE=$install_type
70
            # shellcheck disable=SC2031
71
            export ASDF_INSTALL_VERSION=$version
72
            # shellcheck disable=SC2031
73
            export ASDF_INSTALL_PATH=$install_path
74

75
            print_plugin_help "$plugin_path"
76
          )
77
        else
78
          (print_plugin_help "$plugin_path")
79
        fi
80
      else
81
        printf "No documentation for plugin %s\n" "$plugin_name" >&2
82
        exit 1
83
      fi
84
    else
85
      printf "No plugin named %s\n" "$plugin_name" >&2
86
      exit 1
87
    fi
88
  else
89
    # Otherwise output general asdf help
90
    asdf_help
91
    asdf_extension_cmds
92
    asdf_moto
93
  fi
94
}
95

96
print_plugin_help() {
97
  local plugin_path=$1
98

99
  # Eventually @jthegedus or someone else will format the output from these
100
  # scripts in a certain way.
101
  "${plugin_path}"/bin/help.overview
102

103
  if [ -f "${plugin_path}"/bin/help.deps ]; then
104
    "${plugin_path}"/bin/help.deps
105
  fi
106

107
  if [ -f "${plugin_path}"/bin/help.config ]; then
108
    "${plugin_path}"/bin/help.config
109
  fi
110

111
  if [ -f "${plugin_path}"/bin/help.links ]; then
112
    "${plugin_path}"/bin/help.links
113
  fi
114
}
115

116
help_command "$@"
117

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.