dotfiles-store 625 B

123456789101112131415161718192021
  1. #!/usr/bin/env bash
  2. dotfiles-store() {
  3. [[ $# -lt 2 ]] && { echo "Usage: $0 <subdir> <file1> [<file2> ...]"; return 1; }
  4. local subdir=$1; shift
  5. local dotdir=~/develop/dotfiles
  6. mkdir -p "$dotdir/$subdir"
  7. for src in "$@"; do
  8. local filename
  9. filename=$(basename "$src")
  10. local dest="$dotdir/$subdir/$filename"
  11. cp -ai "$src" "$dest" || { echo "Failed to copy $src"; continue; }
  12. ln -sf "$dest" "$src"
  13. echo "Moved $src → $dest and linked $src → $dest"
  14. done
  15. }
  16. # Allow this file to be executed directly if not being sourced
  17. if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then
  18. dotfiles-store "$@"
  19. fi