Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sync.sh:
- #!/bin/sh
- BASE=/home/dermoth/DEV/src/Nagios/repo.or.cz/master
- LOCKFILE=$BASE/sync.lck
- LOGFILE=$BASE/sync.log
- exec >>$LOGFILE 2>&1
- if [ -e $LOCKFILE ]; then
- if kill -0 `cat $LOCKFILE`; then
- echo "Nagios sync already running! BAILING OUT!"
- echo "If you received this message in error please remove '$LOCKFILE'."
- exit 1
- else
- rm -f $LOCKFILE
- echo "Removed stale pid file!"
- fi
- fi
- echo $$ >$LOCKFILE
- cd $BASE/nagios && \
- git checkout master && \
- git svn fetch --all && \
- $BASE/git-svn-branch.sh && \
- $BASE/git-svn-tag.sh && \
- git push && \
- echo "Sync successfully completed on `date`"
- rm -f $LOCKFILE
- git-svn-branch.sh:
- #!/bin/bash
- set -eu
- for i in .git/svn/refs/remotes/*; do
- bname=$(basename $i)
- [ $bname == trunk ] && continue
- git branch -r |grep -Eq '[[:space:]]*'$bname'[[:space:]]*$' || continue
- created=0
- git branch -l |grep -Eq '[[:space:]]*'$bname'[[:space:]]*$' && created=1
- if [ $created -eq 0 ]
- then
- git checkout remotes/$bname || continue
- git checkout -b $bname
- else
- git checkout $bname
- fi
- echo Checked-out $bname
- git svn rebase -l
- echo Updated $bname
- done
- git checkout master
- echo Checked-out master
- git svn rebase -l
- echo Updated master
- git-svn-tag.sh:
- #!/bin/bash
- set -eu
- for i in .git/svn/refs/remotes/tags/*; do
- tagname=$(basename $i)
- [ -e .git/refs/tags/$tagname ] && continue
- git checkout remotes/tags/$tagname || continue
- echo Checked-out $tagname
- date=$(git log|head|egrep '^Date:'|cut -d: -f2-|sed 's/ +0000$//')
- git_date=$(TZ=+0000 date -d "$date" "+%Y-%m-%d %H:%M:%S")
- TZ=+0000 GIT_COMMITTER_DATE=$git_date git tag -a -m "$tagname" $tagname || continue
- echo Tagged $tagname back in $git_date
- done
- git checkout master
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement