Python1320

.svnmerge.sh

Jul 12th, 2011
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.73 KB | None | 0 0
  1. #!/bin/sh
  2. cd "`dirname \"$0\"`" #I want to go home
  3. . ./.header.sh #Folders and such
  4. cdstart
  5. DEST_DIR="$SVN_MERGEDIR"
  6. SRC_DIR="$SVN_FOLDER"
  7. VERBOSE_MERGE=1
  8.  
  9. #Check if we are merging serversvn
  10. SRVUPDATE_ONLY=0
  11. unprotect
  12.     if [[ "$1" == "serversvn" ]]
  13.     then
  14.         SRVUPDATE_ONLY=1
  15.         DEST_DIR="$SRV_SVN_MERGEDIR"
  16.         SRC_DIR="$SRV_SVN"
  17.         VERBOSE_MERGE=0
  18.     fi
  19. protect
  20.  
  21.  
  22. # Processing folder empty.
  23. if [[ -d "$SVN_PROCESS" ]] ; then
  24.     log "Erasing orphan svn process directory: $SVN_PROCESS"
  25.     rm -rf "$SVN_PROCESS" || fatal "Could not remove $SVN_PROCESS"
  26. fi
  27.  
  28. # merge script will grab from here
  29. mkdir -p "$DEST_DIR" || fatal "Could not create svn merge folder"
  30.  
  31. # where our svn processing scripts are
  32. mkdir -p "$SVN_SCRIPTS" || fatal "Could not create svn scripts folder"
  33.  
  34. # temp folder
  35. mkdir -p "$SVN_PROCESS" || fatal "Could not create svn processing folder"
  36. # merge script will grab from here
  37. #mkdir -p "$SRV_MERGED" || fatal "Could not create SRV SVN merged"
  38.  
  39.  
  40.  
  41. merge_svn ()
  42. {
  43.     svn_name="$1"
  44.     #if [ "$svn_name" != "Wire Mod" ]; then return ; fi
  45.     cd "$SRC_DIR"/"$svn_name" || fatal "Could not cd into " "$SRC_DIR"/"$svn_name"
  46.         header "Cloning files for processing @ $svn_name"
  47.     find . -not \( -name '\.svn' -prune \) -not \( -name 'info.txt' -prune \) -type f -print | cpio --quiet -ldp "$SVN_PROCESS"
  48.    
  49.     # If we have a processing script
  50.     if [[ -f "$SVN_SCRIPTS"/"$svn_name".sh ]];then
  51.         header "Executing processing script @ $svn_name"       
  52.         chmod +x "$SVN_SCRIPTS"/"$svn_name".sh || fatal "Could not chmod processing script ""$SVN_SCRIPTS"/"$svn_name".sh
  53.                 #if [ $VERBOSE_MERGE -eq 1 ];then
  54.                     #log "    Processing $svn_name" ; fi   
  55.         cd "$SVN_PROCESS" || fatal "derp"
  56.             "$SVN_SCRIPTS"/"$svn_name".sh||err "Post process error on $svn_name"
  57.        
  58.     fi
  59.    
  60.     header "Linking files to merge directory @ $svn_name"
  61.     #echo "$SVN_PROCESS"/* "$DEST_DIR"
  62.     cp -lrfx "$SVN_PROCESS"/* "$DEST_DIR" ||err "Linking failure on $svn_name!"
  63.    
  64.     header "Cleaning up processing directory"
  65.     rm "$SVN_PROCESS"/* -rf
  66.    
  67. }
  68.  
  69. if [[ -d "$DEST_DIR" ]] ; then
  70.     #log "Cleaning up old SVN merge directory: $DEST_DIR"
  71.     set -u
  72.     rm -rf "$DEST_DIR"/*  # DANGEROUS, FUCKING DANGEROUS. set -u <3
  73. fi
  74.  
  75.  
  76. init_merge() {
  77.  
  78.     ## IN SVN FOLDER ##
  79.     cd "$SRC_DIR"|| fatal "no svn addons folder found"
  80.     for file in * ## All svn folders
  81.     do
  82.             # check if its a dir and a repo
  83.             if [[ -d "$SRC_DIR"/"$file" ]] && [[ -d "$SRC_DIR"/"$file"/.svn ]]  && [[ ! -f "$SRC_DIR"/"$file"/.nomerge ]]
  84.             then
  85.                 #if [ $VERBOSE_MERGE -eq 1 ];then
  86.                     #log "  Merging $file"
  87.                 #fi
  88.                 merge_svn "$file"
  89.             fi
  90.     done
  91. }
  92. init_merge
  93.  
  94.  
  95. cdstart
  96.  
  97. # Processing folder empty.
  98. if [[ -d "$SVN_PROCESS" ]] ; then
  99.     rm -rf "$SVN_PROCESS" || err "Could not remove $SVN_PROCESS"
  100. fi
  101.  
  102. exit 0
Advertisement
Add Comment
Please, Sign In to add comment