Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.75 KB | None | 0 0
  1. sync.sh:
  2.  
  3. #!/bin/sh
  4.  
  5. BASE=/home/dermoth/DEV/src/Nagios/repo.or.cz/master
  6. LOCKFILE=$BASE/sync.lck
  7. LOGFILE=$BASE/sync.log
  8.  
  9. exec >>$LOGFILE 2>&1
  10.  
  11. if [ -e $LOCKFILE ]; then
  12.     if kill -0 `cat $LOCKFILE`; then
  13.         echo "Nagios sync already running! BAILING OUT!"
  14.         echo "If you received this message in error please remove '$LOCKFILE'."
  15.         exit 1
  16.     else
  17.         rm -f $LOCKFILE
  18.         echo "Removed stale pid file!"
  19.     fi
  20. fi
  21. echo $$ >$LOCKFILE
  22.  
  23. cd $BASE/nagios && \
  24.   git checkout master && \
  25.     git svn fetch --all && \
  26.     $BASE/git-svn-branch.sh && \
  27.     $BASE/git-svn-tag.sh && \
  28.     git push && \
  29.     echo "Sync successfully completed on `date`"
  30.  
  31. rm -f $LOCKFILE
  32.  
  33. git-svn-branch.sh:
  34.  
  35. #!/bin/bash
  36.  
  37. set -eu
  38.  
  39. for i in .git/svn/refs/remotes/*; do
  40.     bname=$(basename $i)
  41.     [ $bname == trunk ] && continue
  42.   git branch -r |grep -Eq '[[:space:]]*'$bname'[[:space:]]*$' || continue
  43.   created=0
  44.     git branch -l |grep -Eq '[[:space:]]*'$bname'[[:space:]]*$' && created=1
  45.     if [ $created -eq 0 ]
  46.     then
  47.         git checkout remotes/$bname || continue
  48.         git checkout -b $bname
  49.     else
  50.         git checkout $bname
  51.     fi
  52.     echo Checked-out $bname
  53.     git svn rebase -l
  54.     echo Updated $bname
  55. done
  56.  
  57. git checkout master
  58. echo Checked-out master
  59. git svn rebase -l
  60. echo Updated master
  61.  
  62. git-svn-tag.sh:
  63.  
  64. #!/bin/bash
  65.  
  66. set -eu
  67.  
  68. for i in .git/svn/refs/remotes/tags/*; do
  69.     tagname=$(basename $i)
  70.   [ -e .git/refs/tags/$tagname ] && continue
  71.     git checkout remotes/tags/$tagname || continue
  72.     echo Checked-out $tagname
  73.     date=$(git log|head|egrep '^Date:'|cut -d: -f2-|sed 's/ +0000$//')
  74.     git_date=$(TZ=+0000 date -d "$date" "+%Y-%m-%d %H:%M:%S")
  75.     TZ=+0000 GIT_COMMITTER_DATE=$git_date git tag -a -m "$tagname" $tagname || continue
  76.     echo Tagged $tagname back in $git_date
  77. done
  78.  
  79. git checkout master
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement