nushell/crates/nu-std/std-rfc/path/mod.nu
Bahex f7d5162582
docs(std-rfc): use actual examples rather than doc comments (#15097)
# Description
Update examples with attributes.

# User-Facing Changes
`std-rfc` commands now have examples.

# Tests + Formatting
N/A

# After Submitting
N/A
2025-02-11 16:33:27 -06:00

55 lines
1.7 KiB
Plaintext

# Helper function for `path with` commands
def with-field [field: string, value: string] {
path parse
| update $field $value
| path join
}
alias "path with-extension" = with-extension
# Replace extension of input file paths.
#
# Note that it doesn't change the file name locally.
@example "setting path ext to `rs`" {
"ab.txt" | path with-extension "rs"
} --result ab.rs
@example "leading dot can be included" {
"ab.txt" | path with-extension ".rs"
} --result ab.rs
@example "setting a list of input path ext to `rs`" {
["ab.txt", "cd.exe"] | path with-extension "rs"
} --result [ab.rs, cd.rs]
export def with-extension [ext: string] {
let path = $in
let ext_trim = if $ext starts-with "." {
$ext | str substring 1..
} else {
$ext
}
$path | with-field extension $ext_trim
}
alias "path with-stem" = with-stem
# Replace stem of input file paths.
#
# Note that it doesn't change the file name locally.
@example "replace stem with 'share'" {
"/usr/bin" | path with-stem "share"
} --result /usr/share
@example "replace stem with 'nushell'" {
["/home/alice/", "/home/bob/secret.txt"] | path with-stem "nushell"
} --result [/home/nushell, /home/bob/nushell.txt]
export def with-stem [stem: string] { with-field stem $stem }
alias "path with-parent" = with-parent
# Replace parent field of input file paths.
@example "replace parent path with `/usr/share`" {
"/etc/foobar" | path with-parent "/usr/share/"
} --result "/usr/share/foobar"
@example "replace parent path with `/root/` for all filenames in list" {
["/home/rose/meow", "/home/fdncred/"] | path with-parent "/root/"
} --result [/root/meow, /root/fdncred]
export def with-parent [parent: string] { with-field parent $parent }