Skip to content

A rust crate for simple path (like PATH and LD_PATH) use

License

Notifications You must be signed in to change notification settings

andrewdavidmackenzie/simpath

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Generic badge Generic badge Generic badge

Simpath

A small and simple crate (in the spirit of my "simp*" crates) for search paths, like $PATH and $LD_PATH.

Example

Create a Simpath that loads from the $PATH environment variable using:

let path = simppath::new("PATH");

Then find a file called filename by searching the directories in PATH in order - as a PathBuf

let file = path.find("filename");

Platforms

The following platforms are supported and tested in CI

  • Linux
  • MacOS
  • Windows (with the ";" separator character used for parsing paths from environment variables)

Methods

  • create a search path, initialized from an environment variable
  • create a search path, initialized form an environment variable, using a custom separator character
  • add an entry to the search path (default to assuming it is a directory)
  • add a new directory to the search path
  • get the name of the path
  • get the list of directories in the path
  • find a file in the path
  • find a file by FileType in the path
  • check if the search path already contains a directory entry
  • add to the search path, loading the entries from an environment variable
  • add to the search path, loading the entries from an environment variable, using a custom separator character
  • validate that all directory entries in the path are valid, exist and can be read

Optional methods

These methods are activated by the "urls" feature, which is included by default.

To remove that code and dependencies disable all default features using the cargo command line option --no-default-features or including default-features = false in your Cargo.toml section for Simpath

  • find a file/resource by FileType in the path
  • Add an entry to the search path from a String, can be a directory or a Url
  • Add a URL to the search path

Traits

  • implements the fmt::Display trait
  • Derives Clone
  • Derives Debug

Building

A simple Makefile exists that builds, runs clippy and then runs tests.

Just type make at the command prompt.