Skip to main content

Explore PATH environment variable on Windows and Linux.

Project description

justpath

Reddit PyPI - Version CI

Explore and correct PATH environment variable on both Windows and Linux.

Basic usage

What directories are part of PATH?

justpath show

Sort them alphabetically:

justpath show --sort

What are the paths with bin?

justpath show --includes bin

Are there any errors on PATH?

justpath show --errors

What is the correct PATH with no errors?

justpath show --correct --string

Useful cases

1. Filter directory names

justpath allows to filter paths that must or must not include a certain string. Filtering is case insensitive, --includes windows and --includes Windows will produce the same result.

$ justpath show --sort --includes windows --excludes system32
39 C:\Users\Евгений\AppData\Local\Microsoft\WindowsApps
24 C:\WINDOWS
14 C:\Windows
46 C:\tools\Cmder\vendor\git-for-windows\cmd
47 C:\tools\Cmder\vendor\git-for-windows\mingw64\bin
12 C:\tools\Cmder\vendor\git-for-windows\usr\bin

2. Directory does not exist or not a directory

justpath will indicate if path does not exist or path is not a directory.

Below is an example from Github Codespaces, for some reason /usr/local/sdkman/candidates/ant/current/bin does not exist, but included in PATH.

$ poetry run justpath show --sort --includes sdkman
19 /usr/local/sdkman/bin
23 /usr/local/sdkman/candidates/ant/current/bin (directory does not exist)
21 /usr/local/sdkman/candidates/gradle/current/bin
20 /usr/local/sdkman/candidates/java/current/bin
22 /usr/local/sdkman/candidates/maven/current/bin

I changed my local files a bit to provide this example.

λ justpath show --includes quarto
33 C:\Program Files\Quarto\bin
41 D:\Quarto\bin
50 x:\quarto\does_not_exist (directory does not exist)
51 d:\quarto\this_is_a_file (not a directory)

Use --errors flag to explore what is parts of PATH are not valid and why.

λ justpath show --includes quarto --errors
50 x:\quarto\does_not_exist (directory does not exist)
51 d:\quarto\this_is_a_file (not a directory)

3. Purge invalid paths

--correct flag will drop invalid paths from listing.

λ justpath show --includes quarto --correct
33 C:\Program Files\Quarto\bin
41 D:\Quarto\bin

4. Dump PATH as JSON

justpath you can dump a list of paths from PATH to JSON. You may add --correct flag to list only correct paths.

justpath show --correct --json

5. Create new content string for PATH

You can get a valid string for your PATH in a format native to your operating system using --string ouput flag.

λ justpath show --correct --string
C:\tools\Cmder\bin;C:\tools\Cmder\vendor\bin;C:\Windows\system32;C:\Windows;...

Installation

Stable version

pip install justpath

Development version

git clone https://github.com/epogrebnyak/what-the-path.git
cd what-the-path
pip install -e .

or shorter:

pip install git+https://github.com/epogrebnyak/what-the-path.git

CLI tools

After installation you will get two aliases for the same command line tool.

Preferred:

justpath --help

Being depreciated:

pathit --help

Motivation

I think this quote about PATH is quite right:

I always get the feeling that nobody knows what a PATH is and at this point they are too afraid to ask.

PATH environment variable syntax on Windows and on Linux does scare me a bit, so I wrote this utility to be able to explore PATH more easily.

Development notes

  • Neither justpath nor any child process cannot modify your shell PATH, just view it.
  • See links.md for more tribal knowledge about PATH.

Alternatives

Even better tools than justpath may exist.

  • On Linux you can run echo $PATH | tr ";" "\n" | sort | grep bin instead of trivial parts of justpath.
  • Rapid Environment Editor for Windows is a gem (no affiliation, just a thankful user).
  • Maybe some smart command-line utility in Rust will emerge for PATH, but not there yet.
  • There is pathdebug written in Go that goes a step futher and attempts to trace where your PATH is defined.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

justpath-0.0.9.tar.gz (16.9 kB view hashes)

Uploaded Source

Built Distribution

justpath-0.0.9-py3-none-any.whl (17.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page