Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- cd "`dirname \"$0\"`" #I want to go home
- . ./.header.sh #Folders and such
- cdstart
- DEST_DIR="$SVN_MERGEDIR"
- SRC_DIR="$SVN_FOLDER"
- VERBOSE_MERGE=1
- #Check if we are merging serversvn
- SRVUPDATE_ONLY=0
- unprotect
- if [[ "$1" == "serversvn" ]]
- then
- SRVUPDATE_ONLY=1
- DEST_DIR="$SRV_SVN_MERGEDIR"
- SRC_DIR="$SRV_SVN"
- VERBOSE_MERGE=0
- fi
- protect
- # Processing folder empty.
- if [[ -d "$SVN_PROCESS" ]] ; then
- log "Erasing orphan svn process directory: $SVN_PROCESS"
- rm -rf "$SVN_PROCESS" || fatal "Could not remove $SVN_PROCESS"
- fi
- # merge script will grab from here
- mkdir -p "$DEST_DIR" || fatal "Could not create svn merge folder"
- # where our svn processing scripts are
- mkdir -p "$SVN_SCRIPTS" || fatal "Could not create svn scripts folder"
- # temp folder
- mkdir -p "$SVN_PROCESS" || fatal "Could not create svn processing folder"
- # merge script will grab from here
- #mkdir -p "$SRV_MERGED" || fatal "Could not create SRV SVN merged"
- merge_svn ()
- {
- svn_name="$1"
- #if [ "$svn_name" != "Wire Mod" ]; then return ; fi
- cd "$SRC_DIR"/"$svn_name" || fatal "Could not cd into " "$SRC_DIR"/"$svn_name"
- header "Cloning files for processing @ $svn_name"
- find . -not \( -name '\.svn' -prune \) -not \( -name 'info.txt' -prune \) -type f -print | cpio --quiet -ldp "$SVN_PROCESS"
- # If we have a processing script
- if [[ -f "$SVN_SCRIPTS"/"$svn_name".sh ]];then
- header "Executing processing script @ $svn_name"
- chmod +x "$SVN_SCRIPTS"/"$svn_name".sh || fatal "Could not chmod processing script ""$SVN_SCRIPTS"/"$svn_name".sh
- #if [ $VERBOSE_MERGE -eq 1 ];then
- #log " Processing $svn_name" ; fi
- cd "$SVN_PROCESS" || fatal "derp"
- "$SVN_SCRIPTS"/"$svn_name".sh||err "Post process error on $svn_name"
- fi
- header "Linking files to merge directory @ $svn_name"
- #echo "$SVN_PROCESS"/* "$DEST_DIR"
- cp -lrfx "$SVN_PROCESS"/* "$DEST_DIR" ||err "Linking failure on $svn_name!"
- header "Cleaning up processing directory"
- rm "$SVN_PROCESS"/* -rf
- }
- if [[ -d "$DEST_DIR" ]] ; then
- #log "Cleaning up old SVN merge directory: $DEST_DIR"
- set -u
- rm -rf "$DEST_DIR"/* # DANGEROUS, FUCKING DANGEROUS. set -u <3
- fi
- init_merge() {
- ## IN SVN FOLDER ##
- cd "$SRC_DIR"|| fatal "no svn addons folder found"
- for file in * ## All svn folders
- do
- # check if its a dir and a repo
- if [[ -d "$SRC_DIR"/"$file" ]] && [[ -d "$SRC_DIR"/"$file"/.svn ]] && [[ ! -f "$SRC_DIR"/"$file"/.nomerge ]]
- then
- #if [ $VERBOSE_MERGE -eq 1 ];then
- #log " Merging $file"
- #fi
- merge_svn "$file"
- fi
- done
- }
- init_merge
- cdstart
- # Processing folder empty.
- if [[ -d "$SVN_PROCESS" ]] ; then
- rm -rf "$SVN_PROCESS" || err "Could not remove $SVN_PROCESS"
- fi
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment