Merge branch 'master' into nu/completion

This commit is contained in:
Trevor Brown 2024-12-18 10:29:06 -05:00 committed by GitHub
commit e8d6372564
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 48 additions and 15 deletions

View File

@ -56,7 +56,8 @@ _asdf() {
uninstall | where | reshim) uninstall | where | reshim)
if [[ " $plugins " == *" $prev "* ]]; then if [[ " $plugins " == *" $prev "* ]]; then
local versions local versions
versions=$(asdf list "$prev" 2>/dev/null) # The first two columns are either blank or contain the "current" marker.
versions=$(asdf list "$prev" 2>/dev/null | colrm 1 2)
# shellcheck disable=SC2207 # shellcheck disable=SC2207
COMPREPLY=($(compgen -W "$versions" -- "$cur")) COMPREPLY=($(compgen -W "$versions" -- "$cur"))
else else
@ -67,7 +68,8 @@ _asdf() {
local | global | shell) local | global | shell)
if [[ " $plugins " == *" $prev "* ]]; then if [[ " $plugins " == *" $prev "* ]]; then
local versions local versions
versions=$(asdf list "$prev" 2>/dev/null) # The first two columns are either blank or contain the "current" marker.
versions=$(asdf list "$prev" 2>/dev/null | colrm 1 2)
versions+=" system" versions+=" system"
# shellcheck disable=SC2207 # shellcheck disable=SC2207
COMPREPLY=($(compgen -W "$versions" -- "$cur")) COMPREPLY=($(compgen -W "$versions" -- "$cur"))

View File

@ -364,7 +364,7 @@ export ASDF_DIR="/opt/asdf-vm"
`asdf` scripts need to be sourced **after** you have set your `$PATH` and **after** you have sourced your framework (oh-my-zsh etc). `asdf` scripts need to be sourced **after** you have set your `$PATH` and **after** you have sourced your framework (oh-my-zsh etc).
::: warning ::: warning
On macOS, starting a Bash or Zsh shell automatically calls a utility called `path_helper`. `path_helper` can rearrange items in `PATH` (and `MANPATH`), causing inconsistent behavior for tools that require specific ordering. To workaround this, `asdf` on macOS defaults to forcily adding its `PATH`-entries to the front (taking highest priority). This is controllable with the `ASDF_FORCE_PREPEND` variable. On macOS, starting a Bash or Zsh shell automatically calls a utility called `path_helper`. `path_helper` can rearrange items in `PATH` (and `MANPATH`), causing inconsistent behavior for tools that require specific ordering. To workaround this, `asdf` on macOS defaults to forcibly adding its `PATH`-entries to the front (taking highest priority). This is controllable with the `ASDF_FORCE_PREPEND` variable.
::: :::
Restart your shell so that `PATH` changes take effect. Opening a new terminal tab will usually do it. Restart your shell so that `PATH` changes take effect. Opening a new terminal tab will usually do it.

View File

@ -11,7 +11,7 @@
## 1. 依存関係のインストール ## 1. 依存関係のインストール
asdfの動作には`git`および`curl`が必要です。以下の表は、 _あなたが使用している_ パッケージマネージャで実行するコマンドの _一部例_ です(some might automatically install these tools in later steps)。 asdfの動作には`git`および`curl`が必要です。以下の表は、 _あなたが使用している_ パッケージマネージャで実行するコマンドの _一部例_ です(いくつかのツールは、後の手順で自動的にインストールされます)。
| OS | パッケージマネージャ | コマンド | | OS | パッケージマネージャ | コマンド |
| ----- | -------------------- | ---------------------------------- | | ----- | -------------------- | ---------------------------------- |
@ -34,8 +34,9 @@ asdfの動作には`git`および`curl`が必要です。以下の表は、 _あ
<!-- x-release-please-start-version --> <!-- x-release-please-start-version -->
```shell ```shell
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.13.1 git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.0
``` ```
@ -299,7 +300,7 @@ echo -e "\n. \"$(brew --prefix asdf)/libexec/asdf.ps1\"" >> ~/.config/powershell
下記コマンドで、`~/.config/nushell/config.nu`に`asdf.nu`を追加します: 下記コマンドで、`~/.config/nushell/config.nu`に`asdf.nu`を追加します:
```shell ```shell
"\n$env.ASDF_NU_DIR = ($env.HOME | path join '.asdf')\n source " + ($env.HOME | path join '.asdf/asdf.nu') | save --append $nu.config-path "\n$env.ASDF_DIR = ($env.HOME | path join '.asdf')\n source " + ($env.HOME | path join '.asdf/asdf.nu') | save --append $nu.config-path
``` ```
コマンド補完は自動的に設定されます。 コマンド補完は自動的に設定されます。
@ -310,7 +311,7 @@ echo -e "\n. \"$(brew --prefix asdf)/libexec/asdf.ps1\"" >> ~/.config/powershell
下記コマンドで、`~/.config/nushell/config.nu`に`asdf.nu`を追加します: 下記コマンドで、`~/.config/nushell/config.nu`に`asdf.nu`を追加します:
```shell ```shell
"\n$env.ASDF_NU_DIR = (brew --prefix asdf | str trim | into string | path join 'libexec')\n source " + (brew --prefix asdf | into string | path join 'libexec/asdf.nu') | save --append $nu.config-path "\n$env.ASDF_DIR = (brew --prefix asdf | str trim | into string | path join 'libexec')\n source " + (brew --prefix asdf | str trim | into string | path join 'libexec/asdf.nu') | save --append $nu.config-path
``` ```
コマンド補完は自動的に設定されます。 コマンド補完は自動的に設定されます。
@ -321,7 +322,7 @@ echo -e "\n. \"$(brew --prefix asdf)/libexec/asdf.ps1\"" >> ~/.config/powershell
下記コマンドで、`~/.config/nushell/config.nu`に`asdf.nu`を追加します: 下記コマンドで、`~/.config/nushell/config.nu`に`asdf.nu`を追加します:
```shell ```shell
"\n$env.ASDF_NU_DIR = '/opt/asdf-vm/'\n source /opt/asdf-vm/asdf.nu" | save --append $nu.config-path "\n$env.ASDF_DIR = '/opt/asdf-vm/'\n source /opt/asdf-vm/asdf.nu" | save --append $nu.config-path
``` ```
コマンド補完は自動的に設定されます。 コマンド補完は自動的に設定されます。
@ -363,7 +364,7 @@ export ASDF_DIR="/opt/asdf-vm"
`asdf`のスクリプトは、`$PATH`を設定した**あと**、かつ、使用中のフレームワーク(oh-my-zsh など)を呼び出した**あと**に記述する必要があります。 `asdf`のスクリプトは、`$PATH`を設定した**あと**、かつ、使用中のフレームワーク(oh-my-zsh など)を呼び出した**あと**に記述する必要があります。
::: warning 警告 ::: warning 警告
macOSでは、BasgまたはZSHシェルを起動すると、自動的に`path_helper`というユーティリティが呼び出されます。`path_helper`は`PATH`(および`MANPATH`)内の項目の順番を並び替えることができるため、特定の順序を必要とするツールの動作に、一貫性が無くなってしまいます。これを回避するため、macOSで`asdf`を利用するときは、強制的に`PATH`エントリの先頭に追加する(優先度を一番高くする)ようにしてください。これは、`ASDF_FORCE_PREPEND`環境変数で制御できます。 macOSでは、BashまたはZSHシェルを起動すると、自動的に`path_helper`というユーティリティが呼び出されます。`path_helper`は`PATH`(および`MANPATH`)内の項目の順番を並び替えることができるため、特定の順序を必要とするツールの動作に、一貫性が無くなってしまいます。これを回避するため、macOSで`asdf`を利用するときは、強制的に`PATH`エントリの先頭に追加する(優先度を一番高くする)ようにしてください。これは、`ASDF_FORCE_PREPEND`環境変数で制御できます。
::: :::
`PATH`の変更を反映するために、シェルを再起動してください。たいていの場合、ターミナルのタブを新たに開けばOKです。 `PATH`の変更を反映するために、シェルを再起動してください。たいていの場合、ターミナルのタブを新たに開けばOKです。

View File

@ -152,6 +152,31 @@ asdfプラグインのショートネームリポジトリの同期を無効化
備考: `ASDF_CONCURRENCY`環境変数が設定されている場合はそちらが優先されます。 備考: `ASDF_CONCURRENCY`環境変数が設定されている場合はそちらが優先されます。
### プラグインフック
下記のタイミングで、カスタムコードを実行することができます:
- プラグインのインストール、Shim再生成、更新および削除をする際の前後
- プラグインコマンドの実行前後
例えば、`foo`というプラグインがインストールされていて、`bar`という実行可能ファイルが提供されている場合、以下のようなフックを使うことで、一番最初にカスタムコードを実行することができます:
```text
pre_foo_bar = echo Executing with args: $@
```
以下のパターンがサポートされています:
- `pre_<plugin_name>_<command>`
- `pre_asdf_download_<plugin_name>`
- `{pre,post}_asdf_{install,reshim,uninstall}_<plugin_name>`
- `$1`: フルバージョン
- `{pre,post}_asdf_plugin_{add,update,remove,reshim}`
- `$1`: プラグイン名
- `{pre,post}_asdf_plugin_{add,update,remove}_<plugin_name>`
どのようなコマンドの前後にどのようなコマンドフックを実行すべきかについての詳細は、[プラグインの作成](../plugins/create.md)をご覧ください。
## 環境変数 ## 環境変数
環境変数の設定値は、お使いのシステムやシェルによって異なります。デフォルトロケーションは、インストールした場所や方法(Gitクローン、Homebrew、AUR)によって異なります。 環境変数の設定値は、お使いのシステムやシェルによって異なります。デフォルトロケーションは、インストールした場所や方法(Gitクローン、Homebrew、AUR)によって異なります。

View File

@ -814,7 +814,7 @@ asdf plugin test <plugin_name> <plugin_url> [--asdf-tool-version <version>] [--a
デフォルトは、`asdf latest <plugin-name>`です。 デフォルトは、`asdf latest <plugin-name>`です。
- オプションで`[--asdf-plugin-gitref <git_ref>]`を指定すると、 - オプションで`[--asdf-plugin-gitref <git_ref>]`を指定すると、
そのコミット/ブランチ/タグでプラグイン自体をチェックアウトします。 そのコミット/ブランチ/タグでプラグイン自体をチェックアウトします。
これは、プラグインのCIにおいて、プルリクエストをテストする際に便利です。 これは、プラグインのCIにおいて、プルリクエストをテストする際に便利です。デフォルトは、プラグインリポジトリのデフォルトブランチとなります。
- オプションの`[test_command...]`パラメータは、インストールしたツールが正しく動作するかを確認するために実行するコマンドです。 - オプションの`[test_command...]`パラメータは、インストールしたツールが正しく動作するかを確認するために実行するコマンドです。
通常は、`<tool> --version`または`<tool> --help`となります。 通常は、`<tool> --version`または`<tool> --help`となります。
例えば、NodeJSプラグインをテストするときは、次のように実行します: 例えば、NodeJSプラグインをテストするときは、次のように実行します:

View File

@ -80,7 +80,7 @@ asdf local <name> latest[:<version>]
`global` writes the version to `$HOME/.tool-versions`. `global` writes the version to `$HOME/.tool-versions`.
`shell` set the version to an environment variable named `ASDF_${TOOL}_VERSION`, for the current shell session only. `shell` sets the version to an environment variable named `ASDF_${TOOL}_VERSION`, for the current shell session only.
`local` writes the version to `$PWD/.tool-versions`, creating it if needed. `local` writes the version to `$PWD/.tool-versions`, creating it if needed.

View File

@ -243,7 +243,7 @@ install_tool_version() {
fi fi
# Otherwise, remove the download directory if it exists # Otherwise, remove the download directory if it exists
elif [ -d "$download_path" ]; then elif [ -d "$download_path" ]; then
rm -r "$download_path" rm -rf "$download_path"
fi fi
reshim_command "$plugin_name" "$full_version" reshim_command "$plugin_name" "$full_version"

View File

@ -3,6 +3,11 @@ setup_suite() {
# tests fail when it is set to something other than the temp dir. # tests fail when it is set to something other than the temp dir.
unset ASDF_DIR unset ASDF_DIR
# Also unset below variables, because in users shell shimmed commands
# (include bats) export them by determining user's real HOME.
unset ASDF_DATA_DIR
unset ASDF_CONFIG_FILE
# Set an agnostic Git configuration directory to prevent personal # Set an agnostic Git configuration directory to prevent personal
# configuration from interfering with the tests # configuration from interfering with the tests
export GIT_CONFIG_GLOBAL=/dev/null export GIT_CONFIG_GLOBAL=/dev/null