Files
dotfiles/local/bin/x-clean-vendordirs
Ismo Vuorinen efd9eebc85 fix: resolve critical issues in x-clean-vendordirs, x-foreach, x-ip
x-clean-vendordirs: remove broken msgr dependency (not sourced),
add set -euo pipefail. x-foreach: replace eval on command args with
direct "$@" execution, add usage guard. x-ip: add set -euo pipefail,
curl dependency check, and silent-fail flag.
2026-02-05 22:07:03 +02:00

58 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# vim: ft=bash sw=2 ts=2 et
#
# Removes vendor and node_modules directories from the
# current directory and all subdirectories.
#
# Author: Ismo Vuorinen 2025
# License: MIT
set -euo pipefail
# Check if the user has provided a directory as an argument
if [ "${1:-}" ]; then
# Check if the directory exists
if [ -d "$1" ]; then
CLEANDIR="$1"
else
echo "Error: Directory $1 does not exist." >&2
exit 1
fi
else
CLEANDIR="."
fi
# Function to remove node_modules and vendor folders
remove_node_modules_vendor()
{
local dir=$1
# If the directory is a symlink, skip it
if [ -L "$dir" ]; then
echo "Skipping symlink $dir"
return
fi
# Check if the directory exists
if [ -d "$dir" ]; then
# If node_modules or vendor folder exists, remove it and all its contents
if [ -d "$dir/node_modules" ]; then
echo "Removing $dir/node_modules"
rm -rf "$dir/node_modules"
fi
if [ -d "$dir/vendor" ]; then
echo "Removing $dir/vendor"
rm -rf "$dir/vendor"
fi
# Recursively check subdirectories
for item in "$dir"/*; do
[ -d "$item" ] && remove_node_modules_vendor "$item"
done
fi
}
# Start removing node_modules and vendor folders from the current working directory
remove_node_modules_vendor "$CLEANDIR"