From 8babe53ea021a7ab4099d6670211b9ffad2779a1 Mon Sep 17 00:00:00 2001 From: Jonas H Date: Fri, 27 Feb 2026 23:09:44 +0100 Subject: [PATCH] restore dot-add (was emptied by CRLF fix commit) --- dot-add | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/dot-add b/dot-add index e69de29..811b224 100755 --- a/dot-add +++ b/dot-add @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +# dot-add: Move config files/dirs into the dotfiles repo and stow them. +# +# Usage: dot-add [ ...] +# +# Examples: +# dot-add sway ~/.config/sway/config +# dot-add sway ~/.config/sway/ +# dot-add sway ~/.config/sway/* + +set -euo pipefail + +DOTFILES_DIR="$(cd "$(dirname "$0")" && pwd)" + +if [[ $# -lt 2 ]]; then + echo "Usage: dot-add [ ...]" + exit 1 +fi + +PACKAGE="$1" +shift + +add_one() { + local FILE + FILE="$(realpath "$1")" + + if [[ ! -e "$FILE" ]]; then + echo "Error: '$FILE' does not exist" >&2 + return 1 + fi + + if [[ ! "$FILE" == "$HOME/"* ]]; then + echo "Error: '$FILE' is not under \$HOME" >&2 + return 1 + fi + + local REL="${FILE#$HOME/}" + local DEST="$DOTFILES_DIR/$PACKAGE/$REL" + + mkdir -p "$(dirname "$DEST")" + mv "$FILE" "$DEST" + echo "Moved: $FILE -> $DEST" +} + +for PATH_ARG in "$@"; do + add_one "$PATH_ARG" +done + +stow --dir="$DOTFILES_DIR" --target="$HOME" --restow "$PACKAGE" +echo "Stowed: $PACKAGE"