Skip to content

Commit

Permalink
Update rbenv module
Browse files Browse the repository at this point in the history
  • Loading branch information
fantasyzhjk authored Jan 1, 2025
1 parent c1bbcaf commit 8ed480c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 34 deletions.
2 changes: 1 addition & 1 deletion modules/rbenv/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This script provides minimal working rbenv setup.
It can be used by importing its exported commands via:

```
use path/to/rbenv.nu *
use path/to/rbenv.nu
```

With `path/to` being either the relative path of the file to your current working directory or its absolute path.
46 changes: 13 additions & 33 deletions modules/rbenv/rbenv.nu
Original file line number Diff line number Diff line change
@@ -1,38 +1,18 @@
# rbenv
export-env {
load-env {
PATH: ($env.PATH | split row (char esep) | prepend [$"($env.HOME)/.rbenv/bin" $"($env.HOME)/.rbenv/shims"])
RBENV_VERSION: ""
RBENV_VERSION_OLD: ""
RBENV_SHELL: "nu"
}
export-env {
use std/util "path add"

$env.RBENV_SHELL = 'nu'
path add $"($env.HOME)/.rbenv/bin"
path add $"($env.HOME)/.rbenv/shims"
}

export def --env main [
command?: string@'nu-complete rbenv',
...args
] {
let new_env = if $command in ["rehash", "shell"] {
# implement each on indiviudaly e.g.
if $command == "shell" {
{ RBENV_VERSION_OLD: $env.RBENV_VERSION RBENV_VERSION: $args.0 }
} else {
error make { msg: $"`($command)` command is not supported yet" }
}
export def --env "shell" [version: string] {
let run = (^rbenv sh-shell $version | complete)
if ($run.exit_code == 0) {
$env.RBENV_VERSION_OLD = ($env.RBENV_VERSION | default "")
$env.RBENV_VERSION = $version
} else {
if ($command | is-empty) {
^rbenv
} else {
^rbenv $command $args
}
{}
print -e $run.stderr
}
load-env $new_env
}

def 'nu-complete rbenv' [] {
^rbenv help
| lines
| where ($it | str starts-with " ")
| each {|entry| $entry | split row ' ' | get 0 }
}
}

0 comments on commit 8ed480c

Please sign in to comment.