Skip to main content

Execute the commands in the configuration file according to the current working directory.

Project description

chpwd_cmd Python package

What is this?

chpwd_cmd executes the commands in the configuration file according to the current working directory. It is intended to be called from the hook function of zsh, fish and so on. With this you will no longer need to type a command every time you move the directory.

How to install

pip install chpwd-cmd

Configuration

chpwd_cmd requires configuration file at runtime. Configuration file must be located $HOME/.chpwd_cmd. Configuration File is written in Toml format.

Configuration is written in every workdir.name table. If you write more than one workdir.name, the name must be unique.

Configuration Item

name type description required
dirpath string Specifies the directory of execution. The specification of the directory can be written using the glob pattern. If the directory path is the same as the other Workdir Both commands work. True
cmd string Specifies the command to execute True

Example of configuration file

[workdir.home]
dirpath = "/Users/hoge"
cmd = "ls"

[workdir.git]
dirpath = "~/Documents/git/*/*"
cmd = "git fetch -p"

How to use

usage: chpwd_cmd [-h] [-c CWD] [-m {exec,dryrun,listdir}]

This program executes the commands in the configuration file according to the
current working directory

optional arguments:
  -h, --help            show this help message and exit
  -c CWD, --cwd CWD     current working directory
  -m {exec,dryrun,listdir}, --mode {exec,dryrun,listdir}
                        running mode (default:exec)

Execution

If you specify a directory path in exec mode, chpwd_cmd execute it. The default mode of chpwd_cmd is exec.

chpwd_cmd -m exec -c $HOME

If you are using zsh, you will be able to call it as follows.

Adding to your .zshrc file.

function chpwd() {
  chpwd_cmd -c $PWD
}

If you are using fish, you will be able to call it as follows.

Adding to your ~/.config/fish/config.fish file.

function chpwd --on-variable PWD
  chpwd_cmd -c $PWD
end

Dryrun

It is recommended to do a dryrun before running the mode exec. You can check if a directory is targeted for execution by doing dryrun.

chpwd_cmd -m dryrun -c $HOME

List Directory

You can list the directories for execution. It is useful if you specify the directory path as a wildcard.

chpwd_cmd -m listdir

How to test

make test

License

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

chpwd_cmd-0.0.2.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chpwd_cmd-0.0.2-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file chpwd_cmd-0.0.2.tar.gz.

File metadata

  • Download URL: chpwd_cmd-0.0.2.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.7

File hashes

Hashes for chpwd_cmd-0.0.2.tar.gz
Algorithm Hash digest
SHA256 1f6d76d08e4255169e5e36a7fac1c3a6b524e8931a4eea4b2fe76c340bc39184
MD5 ed16816a0c5493d183e202a343691206
BLAKE2b-256 3f19a3bf1b2dc85ed2ace44b77a561e04430bc4c9414c88e981f4aec60b9662b

See more details on using hashes here.

File details

Details for the file chpwd_cmd-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: chpwd_cmd-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.7

File hashes

Hashes for chpwd_cmd-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 15becbd2963cfe488fde535005142c82fc472dd1e5f77cd110b1ec6ccf564a60
MD5 88aa9fdec670c1ecad83f36b229287ac
BLAKE2b-256 41d812e9568aa5214049d022b4873cd3212cbdeed8a102c8874b60d805d3e3c7

See more details on using hashes here.

Supported by

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