Skip to content
Snippets Groups Projects
git 2.64 KiB
#!/bin/bash
FOLDER="tomato150/autoassembly.git"
SERVERNAME=dev1
USER=aflit001
SERVER=dev1.ab.wurnet.nl
# on tomato150 run git git init --bare ftp.git

COMMENT=$@
DATESTR=`date --rfc-3339=seconds | tr " |,|:|\+" _`
DIRNAME=`dirname ${0}`
#echo DIRNAME $DIRNAME
cd $DIRNAME
LOG=.git.log
ERR=.git.err

#echo LOG $LOG
echo STARTING ${DATESTR} | tee -a $ERR >> $LOG



CONNECT=${USER}@${SERVER}


ADD=`git status | grep "nothing to commit"`
if [[ ! -z "$ADD" ]]; then
	echo "NOTHING TO DO: '${ADD}'" | tee -a $ERR >>$LOG
	echo FINISHED ${DATESTR}       | tee -a $ERR >>$LOG
	if [[ -z "$1" ]]; then
		exit 0
	fi
else
	echo "SOMETHING TO DO: '${ADD}'" | tee -a $ERR >> $LOG
fi


DST=${CONNECT}:${FOLDER}

#echo "COMMENT    $COMMENT"
#echo "SERVER     $SERVER"
#echo "USER       $USER"
#echo "SERVERNAME $SERVERNAME"
#echo "CONNECT    $CONNECT"
#echo "FOLDER     $FOLDER"
#echo "DATESTR    $DATESTR"
#echo "DST        $DST"
#echo ""
#echo "REMOTE ADD"
git remote rm  ${SERVERNAME}         2>>$ERR >>$LOG
git remote add ${SERVERNAME} ${DST}  2>>$ERR >>$LOG

#echo "REMOTE CONFIG"
git config remote.${SERVERNAME}.receivepack /usr/bin/git-receive-pack  2>>$ERR >>$LOG
git config remote.${SERVERNAME}.uploadpack  /usr/bin/git-upload-pack   2>>$ERR >>$LOG



#echo ADD
git add . -v 2>>$ERR >>$LOG




#echo "STATUS"
git status                       2>>$ERR >>$LOG
git status -s                    2>>$ERR >>$LOG


STATUSN=`git status -s | grep -v \?\? | wc -l`
STATUSN=$((STATUSN))
STATUST=`git status -s | grep -v \?\? | perl -MFile::Basename -ane 'BEGIN { %p } END { map { my $k = $_; print $k, " => ", (scalar keys %{$p{$k}}), " "; } sort keys %p; } $d=dirname $F[1]; $p{$F[0]}{$d}++;'`
STATUSL=`git status -s | grep -v \?\? | perl -MFile::Basename -ane 'BEGIN { %p } END { map { my $k = $_; print $k, " => ", (scalar keys %{$p{$k}}), " "; } sort keys %p; foreach my $k (sort keys %p) { foreach my $kk ( sort keys %{$p{$k}} ) { print "\t$kk => $p{$k}{$kk} "; } } } $d=dirname $F[1]; $p{$F[0]}{$d}++;'`

if [[ ! -z $(git ls-files --deleted) ]]; then
    git rm $(git ls-files --deleted)  2>>$ERR >> $LOG
fi


echo "STATUSN $STATUS ($STATUSN)" | tee -a $ERR >> $LOG #SUM
echo "STATUST $STATUS ($STATUST)" | tee -a $ERR >> $LOG #TOTAL
echo "STATUSL $STATUS ($STATUSL)" | tee -a $ERR >> $LOG #DETAILED

#echo COMMIT
if [[ -z "$COMMENT" ]]; then
	COMMENT=""
else
	COMMENT=":: $COMMENT"
fi
git commit -am "$DATESTR :: $STATUSN :: $STATUST ${COMMENT}" 2>>$ERR >> $LOG


echo PUSH 2>>$ERR >> $LOG
CMD="git push --verbose --mirror ${SERVERNAME}"
#echo "  $CMD"
$CMD 2>>$ERR >> $LOG


echo FINISHED ${DATESTR} | tee -a $ERR >> $LOG
echo -e "\n\n====================================================\n\n" | tee -a $ERR >> $LOG