summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorDemonKiller <55846983+demonkillerr@users.noreply.github.com>2023-10-08 14:27:55 +0100
committerGitHub <noreply@github.com>2023-10-08 15:27:55 +0200
commit7105e37ef09ff890f7eca3e64d48b8b7ff94a494 (patch)
treea93f5bf1d73a17d7848f0560b1a18b861a04e1d5 /plugins
parentee857e3acf4beba9e3121bc8e776a048c46fa85f (diff)
downloadzsh-7105e37ef09ff890f7eca3e64d48b8b7ff94a494.tar.gz
zsh-7105e37ef09ff890f7eca3e64d48b8b7ff94a494.tar.bz2
zsh-7105e37ef09ff890f7eca3e64d48b8b7ff94a494.zip
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
Diffstat (limited to 'plugins')
-rw-r--r--plugins/rtx/README.md30
-rw-r--r--plugins/rtx/rtx.plugin.zsh30
2 files changed, 60 insertions, 0 deletions
diff --git a/plugins/rtx/README.md b/plugins/rtx/README.md
new file mode 100644
index 000000000..c6436d3a7
--- /dev/null
+++ b/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
+```
diff --git a/plugins/rtx/rtx.plugin.zsh b/plugins/rtx/rtx.plugin.zsh
new file mode 100644
index 000000000..aaccaf015
--- /dev/null
+++ b/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