Skip to main content

Initialize rtx (polyglot asdf-like runtime manager in Rust)
in a more performant and flexible way

If you like the idea click ⭐ on the repo and tweet.

This xontrib adds a couple of (maybe too tiny to notice) improvements:

  • (no cost) replaces the subprocess syntax for the hook rtx function with a pure python syntax, which for some reason improves hook runtime by ~60% (but in absolute terms maybe just a dozen or two ms)
  • (less convenient) replaces a hook on every prompt paint with hooks on
    • shell launch
    • changing dirs
    • empty commands
      useful to refresh shell status when you edit .tool-versions outside of shell (optional)
    • commands that containt custom text chunks
      useful to refresh shell status when you edit .tool-versions in a shell (optional)

Installation

To install use pip:

xpip install xontrib-rtx
# or: xpip install -U git+https://github.com/eugenesvk/xontrib-rtx

Usage

This xontrib requires rtx to be in PATH or ~/bin; or if it's added to PATH via another xontrib (e.g, you installed it via Homebrew and use xontrib-homebrew), then you should load this xontrib after the one setting PATH

  1. Add the following to your .py xontrib loading config and import it in your xonsh run control file (~/.xonshrc or ~/.config/rc.xsh):
from xonsh.xontribs 	import xontribs_load
from xonsh.built_ins	import XSH
envx = XSH.env

xontribs = [ "rtx", # Initializes rtx (polyglot asdf-like runtime manager)
 # your other xontribs
]
# ↓ optional configuration variables
if 'rtx' in xontribs: # Configure rtx only if you're actually loading
  # config var                       	  value             	  |default|alt_cmd¦ comment
  envx['XONTRIB_RTX_CHUNK_LIST']     	= ['.tool-versions']	# |['.tool-versions']|False¦ (feeble attempts to track edits to `.tool-versions` in the command line) update rtx status if command contains any of the string chunks in this list; False to disable this listener completely
  envx['XONTRIB_RTX_NEWLINE_REFRESH']	= True              	# |True|False¦ update rtx status if command is empty (e.g, ⏎ on a blank line to refresh after editing `.tool-versions` in a text editor); False to disable this listener completely
  envx['XONTRIB_RTX_FORCE_COLOR']    	= True              	# |True|False¦ preserve colored rtx output
  envx['XONTRIB_RTX_LOGLEVEL']       	= 1                 	# |1|0¦ print xontrib log messages: 0 none, 1 error; 'rtx' stderr is always passed through

xontribs_load(xontribs_manual) # actually load all xontribs in the list
  1. Or just add this to your xonsh run control file
xontrib load rtx # Initializes rtx (polyglot asdf-like runtime manager)
# configure like in the example above, but replace envx['VAR'] with $VAR
$XONTRIB_RTX_LOGLEVEL = 1

Known issues

  • In the future xontrib-rtx will be autoloaded, but this is currently blocked due to a xonsh bug: too early autoload prevens reading user config; also, autoloading can't be disabled

Credits

This package was created with xontrib template

Release files for xontrib-rtx 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xontrib-rtx 0.0.1
File Size Uploaded
xontrib_rtx-0.0.1.tar.gz 5.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xontrib-rtx 0.0.1
File Interpreter ABI Platform
xontrib_rtx-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 10.5 kB

Release files / xontrib_rtx-0.0.1.tar.gz

Download URL xontrib_rtx-0.0.1.tar.gz
Size 5.4 kB
Tags Source
SHA-256 checksum
How to use checksums
fbadd593b0c9e81b6030cc05e5a0830af690fae175a007bd15ad61c8010fe6b5
BLAKE2b-256 checksum
How to use checksums
37b7208cfa06046ad735591336dd0784af7b33f186e450cc3dd1fa6f29768908
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.11.1 Darwin/19.6.0

Release files / xontrib_rtx-0.0.1-py3-none-any.whl

Download URL xontrib_rtx-0.0.1-py3-none-any.whl
Size 5.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
337e5c5c65b20df15ea92dffa7485da5f4b5f88e58b1dbc402104c9117308a96
BLAKE2b-256 checksum
How to use checksums
ec1ee9f7b2c3811445b2d23c890d5f18c077442cf7fd6ed5aebb175774341d4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.11.1 Darwin/19.6.0

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page