Browse Source

feat(rtx) Added new polyglot runtime manager (asdf rust clone) (#11932)

* add readme.md for rtx
* add rtx plugin
* update install info
* remove redundant slashes
DemonKiller 1 year ago
parent
commit
7105e37ef0
2 changed files with 60 additions and 0 deletions
  1. 30 0
      plugins/rtx/README.md
  2. 30 0
      plugins/rtx/rtx.plugin.zsh

+ 30 - 0
plugins/rtx/README.md

@@ -0,0 +1,30 @@
+## rtx
+
+
+Adds integration with [rtx](https://github.com/jdx/rtx), a runtime executor compatible with npm,  nodenv, pyenv, etc. rtx is written in rust and is very fast. 20x-200x faster than asdf. With that being said, rtx is compatible with asdf plugins and .tool-versions files. It can be used as a drop-in replacement.
+
+### Installation
+
+1. [Download & install rtx](https://github.com/jdx/rtx#installation) by running the following:
+
+  ```
+  curl https://rtx.pub/install.sh | sh
+  ```
+
+
+2. [Enable rtx](https://github.com/jdx/rtx#quickstart) by adding it to your `plugins` definition in `~/.zshrc`.
+
+  ```
+  plugins=(rtx)
+  ```
+
+### Usage
+
+See the [rtx readme](https://github.com/jdx/rtx#table-of-contents) for information on how to use rtx. Here are a few examples:
+
+```
+rtx install node         Install the current version specified in .tool-versions/.rtx.toml
+rtx use -g node@system   Use system node as global default
+rtx install node@20.0.0  Install a specific version number
+rtx use -g node@20       Use node-20.x as global default
+```

+ 30 - 0
plugins/rtx/rtx.plugin.zsh

@@ -0,0 +1,30 @@
+# Find where rtx should be installed
+RTX_DIR="${RTX_DIR:-$HOME/.rtx}"
+RTX_COMPLETIONS="$RTX_DIR/completions"
+
+if [[ ! -f "$RTX_DIR/rtx.sh" || ! -f "$RTX_COMPLETIONS/_rtx" ]]; then
+  # If not found, check for archlinux/AUR package (/opt/rtx-vm/)
+  if [[ -f "/opt/rtx-vm/rtx.sh" ]]; then
+    RTX_DIR="/opt/rtx-vm"
+    RTX_COMPLETIONS="$RTX_DIR"
+  # If not found, check for Homebrew package
+  elif (( $+commands[brew] )); then
+    _RTX_PREFIX="$(brew --prefix rtx)"
+    RTX_DIR="${_RTX_PREFIX}/libexec"
+    RTX_COMPLETIONS="${_RTX_PREFIX}/share/zsh/site-functions"
+    unset _RTX_PREFIX
+  else
+    return
+  fi
+fi
+
+# Load command
+if [[ -f "$RTX_DIR/rtx.sh" ]]; then
+  source "$RTX_DIR/rtx.sh"
+  # Load completions
+  if [[ -f "$RTX_COMPLETIONS/_rtx" ]]; then
+    fpath+=("$RTX_COMPLETIONS")
+    autoload -Uz _rtx
+    compdef _rtx rtx # compdef is already loaded before loading plugins
+  fi
+fi