fix CRLF in dot-add

This commit is contained in:
Jonas H
2026-02-27 23:11:11 +01:00
parent 8babe53ea0
commit 314427dfd6

100
dot-add
View File

@@ -1,50 +1,50 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# dot-add: Move config files/dirs into the dotfiles repo and stow them. # dot-add: Move config files/dirs into the dotfiles repo and stow them.
# #
# Usage: dot-add <package> <path> [<path> ...] # Usage: dot-add <package> <path> [<path> ...]
# #
# Examples: # Examples:
# dot-add sway ~/.config/sway/config # dot-add sway ~/.config/sway/config
# dot-add sway ~/.config/sway/ # dot-add sway ~/.config/sway/
# dot-add sway ~/.config/sway/* # dot-add sway ~/.config/sway/*
set -euo pipefail set -euo pipefail
DOTFILES_DIR="$(cd "$(dirname "$0")" && pwd)" DOTFILES_DIR="$(cd "$(dirname "$0")" && pwd)"
if [[ $# -lt 2 ]]; then if [[ $# -lt 2 ]]; then
echo "Usage: dot-add <package> <path> [<path> ...]" echo "Usage: dot-add <package> <path> [<path> ...]"
exit 1 exit 1
fi fi
PACKAGE="$1" PACKAGE="$1"
shift shift
add_one() { add_one() {
local FILE local FILE
FILE="$(realpath "$1")" FILE="$(realpath "$1")"
if [[ ! -e "$FILE" ]]; then if [[ ! -e "$FILE" ]]; then
echo "Error: '$FILE' does not exist" >&2 echo "Error: '$FILE' does not exist" >&2
return 1 return 1
fi fi
if [[ ! "$FILE" == "$HOME/"* ]]; then if [[ ! "$FILE" == "$HOME/"* ]]; then
echo "Error: '$FILE' is not under \$HOME" >&2 echo "Error: '$FILE' is not under \$HOME" >&2
return 1 return 1
fi fi
local REL="${FILE#$HOME/}" local REL="${FILE#$HOME/}"
local DEST="$DOTFILES_DIR/$PACKAGE/$REL" local DEST="$DOTFILES_DIR/$PACKAGE/$REL"
mkdir -p "$(dirname "$DEST")" mkdir -p "$(dirname "$DEST")"
mv "$FILE" "$DEST" mv "$FILE" "$DEST"
echo "Moved: $FILE -> $DEST" echo "Moved: $FILE -> $DEST"
} }
for PATH_ARG in "$@"; do for PATH_ARG in "$@"; do
add_one "$PATH_ARG" add_one "$PATH_ARG"
done done
stow --dir="$DOTFILES_DIR" --target="$HOME" --restow "$PACKAGE" stow --dir="$DOTFILES_DIR" --target="$HOME" --restow "$PACKAGE"
echo "Stowed: $PACKAGE" echo "Stowed: $PACKAGE"