shadow/Justfile
Josh 7000d60fde
Some checks failed
test / test (macos-latest) (push) Has been cancelled
test / test (ubuntu-latest) (push) Has been cancelled
test / test (windows-latest) (push) Has been cancelled
prep for putting repo on GH
2024-12-14 14:01:03 -06:00

101 lines
1.9 KiB
Makefile

set dotenv-load := true
set unstable := true
# List all available commands
[private]
default:
@just --list
[private]
test-cleanup:
#!/usr/bin/env bash
set -euo pipefail
rm -rf test_bin
echo "Test cleanup complete"
[private]
test-setup:
#!/usr/bin/env bash
set -euo pipefail
cargo build
TEST_DIR="test_bin"
mkdir -p $TEST_DIR
cd $TEST_DIR
ln -sf ../target/debug/shadow .
ln -sf shadow ls
ln -sf shadow tree
ln -sf shadow cat
mkdir -p other_bin
cd ..
echo "Test setup complete"
clean:
rm -rf target/
lint:
@just --fmt
cargo fmt
cargo clippy
test:
#!/usr/bin/env bash
set -euo pipefail
just test-setup
cd test_bin
export PATH="$PWD:$PATH"
echo -e "\nTesting shadow add commands:"
./shadow add ls eza
./shadow add tree "eza --tree"
./shadow add cat bat --bin-path ./other_bin
echo -e "\nTesting shadow list command:"
./shadow list
echo -e "\nTesting shadowed commands:"
./ls --version
./tree --version
./cat --version
echo -e "\nTesting shadow remove command:"
./shadow remove ls
echo "After removing ls:"
./shadow list
echo -e "\nTesting remove with specific bin path:"
./shadow remove cat --bin-path ./other_bin
echo "After removing cat:"
./shadow list
echo -e "\nTesting command with --raw flag:"
if ! ./tree --raw --version; then
echo "Raw command should execute original binary"
fi
echo -e "\nTesting non-existent shadow:"
if ./shadow remove nonexistent; then
echo "Error: remove should fail for non-existent shadow"
exit 1
else
echo "Successfully detected non-existent shadow"
fi
echo -e "\nTesting invalid commands:"
if ./shadow add; then
echo "Error: add should fail without arguments"
exit 1
else
echo "Successfully detected invalid add command"
fi
cd ..
just test-cleanup