xyproto / in

:open_file_folder: Create a directory if needed, then run the given command there

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

In Logo

Build License Stand With Ukraine

Utility to execute commands in directories, and create directories if needed.

It will also create the directories, if missing. If the top level directory is empty after executing the command, it will be removed. This means that in testdirectory pwd leaves no traces.

Example 1

in build cmake ..

Instead of:

mkdir -p build
cd build
cmake ..

Or:

mkdir -p build
cmake -B build -S .

Example 2

in project ./configure --prefix=/usr

Instead of:

cd project
./configure --prefix=/usr
cd ..

Or:

(cd project; ./configure --prefix=/usr)

Or:

pushd project
./configure --prefix=/usr
popd

Example 3

Globbing (note the double quotes to avoid shell expansion). No directories are created when using globbing, but the given command will be run in each directory where a matching file is found, for each matching file.

in "./**/*pom.xml" mvn clean

Installation

Linux

Manual installation, using cargo, git, install and sudo:

git clone https://github.com/xyproto/in
cd in
cargo build --release
sudo install -Dm755 target/release/in /usr/bin/in

FreeBSD

Manual installation, using cargo, doas, git and install:

git clone https://github.com/xyproto/in
cd in
cargo build --release
mkdir -p /usr/bin
doas install -m755 target/release/in /usr/bin/in

General info

About

:open_file_folder: Create a directory if needed, then run the given command there

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Rust 51.2%Language:Shell 35.2%Language:Roff 7.9%Language:Makefile 5.7%