#!/bin/bash HOSTNAME=$(hostname -s) SVN_DIR="/var/svn/rc-files" GLOBAL_WHITELIST="known_hosts|\.svn" FILE_LIST=$(find "$SVN_DIR/ALL" -type f -print | grep -vE "$GLOBAL_WHITELIST") FILE_LIST_TRUNC=$(echo "$FILE_LIST" | sed "s/^.*\/\.//g") # Create all the files cd "$SVN_DIR" for RC_FILE in $FILE_LIST; do RC_FILE_TRUNC=$(echo "$RC_FILE" | sed 's/^.*\/\.//g') RC_TAIL="$SVN_DIR/$HOSTNAME/.$RC_FILE_TRUNC.tail" DESTINATION="$SVN_DIR/$HOSTNAME/.$RC_FILE_TRUNC" BASENAME=$(basename "$DESTINATION") DESTINATION_DIR=$(echo "$DESTINATION" | sed "s/$BASENAME//g") mkdir -p "$DESTINATION_DIR" cat "$RC_FILE" "$RC_TAIL" > "$DESTINATION_DIR$BASENAME" chmod 700 "$DESTINATION_DIR$BASENAME" done # Check and alert if they aren't sym-linked for FILE_TO_CHECK in $FILE_LIST_TRUNC; do LINK=$(find "$HOME" -type l -wholename "*.$FILE_TO_CHECK" 2> /dev/null | wc -l) if [ "$LINK" -eq 0 ]; then echo ".$FILE_TO_CHECK doesn't look like a symlink!!!!" fi done