SkillAgentSearch skills...

Shellexpand

A library for shell-like expansions of variables in strings

Install / Use

/learn @netvl/Shellexpand
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

shellexpand, a library for shell-like expansion in strings


Note: this repository is not maintained. Please check out https://gitlab.com/ijackson/rust-shellexpand as this is where all of the development happens. The crate identifier on https://crates.io, shellexpand, now points to that repository.


Build Status crates.io docs

Documentation

shellexpand is a single dependency library which allows one to perform shell-like expansions in strings, that is, to expand variables like $A or ${B} into their values inside some context and to expand ~ in the beginning of a string into the home directory (again, inside some context).

This crate provides generic functions which accept arbitrary contexts as well as default, system-based functions which perform expansions using the system-wide context (represented by functions from std::env module and dirs-next crate).

Usage

Just add a dependency in your Cargo.toml:

[dependencies]
shellexpand = "2.1"

See the crate documentation (a link is present in the beginning of this readme) for more information and examples.

Changelog

Version 2.1.0

  • Switched to dirs-next instead of the obsolete dirs as the underlying dependency used to resolve the home directory
  • Switched to GitHub Actions instead of Travis CI for building the project.

Version 2.0.0

  • Added support for default values in variable expansion (i.e. ${ANSWER:-42})
  • Breaking changes (minimum Rust version is now 1.30.0):
    • Using dyn for trait objects to fix deprecation warning
    • Switched to using source() instead of cause() in the Error implementation, and therefore added a 'static bound for the generic error parameter E

Version 1.1.1

  • Bump dirs dependency to 2.0.

Version 1.1.0

  • Changed use of deprecated std::env::home_dir to the dirs::home_dir function

Version 1.0.0

  • Fixed typos and minor incompletenesses in the documentation
  • Changed home_dir argument type for tilde expansion functions to FnOnce instead FnMut
  • Changed LookupError::name field name to var_name

Version 0.1.0

  • Initial release

License

This program is licensed under either of

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

View on GitHub
GitHub Stars97
CategoryDevelopment
Updated26d ago
Forks11

Languages

Rust

Security Score

95/100

Audited on Feb 25, 2026

No findings