#!/bin/bash
# git2gz v0.1 GPL
if [ -z "$1" ]
then
echo "No argument given."
echo "Usage: `basename $0` git://git-domain.com/example/example.git"
exit 1
fi
gitx=$1
# prüfen ob notwendige Programme vorhanden sind
which awk >/dev/null 2>&1
if [ $? -ne 0 ]
then
echo "[awk] is not installed on your system!"
exit 1
fi
which git >/dev/null 2>&1
if [ $? -ne 0 ]
then
echo "[git] is not installed on your system!"
exit 1
fi
# domain name extrahieren und prüfen ob erreichbar
git_domain=`echo $gitx | awk -v FS="/" '{print $3}'`
ping -c 1 $git_domain >/dev/null 2>&1
if [ $? -ne 0 ]
then
echo "The Domain [`echo $git_domain`] ist not available"
echo "or the network is not reachable"
exit 2
fi
# Temporary ordner prüfem
if [ -d "/tmp" -a -w "/tmp" ]
then
dtmp="/tmp/"
else
if [ ! -d ~/tmp ]
then
mkdir ~/tmp
if [ $? -ne 0 ]
then
echo "Create the [tmp] failed!"
exit 1
fi
fi
dtmp="~/tmp/"
fi
s1=${gitx##*/}
s2=${s1%%.*}
now=`date +'_%Y%m%d'`
gitn="$s2$now"
gitcdir="$dtmp$gitn"
if [ ! -d $gitcdir ]
then
mkdir $gitcdir
fi
git clone $gitx $gitcdir
if [ $? -ne 0 ]
then
echo "[git] could not finish its work!"
exit 1
else
gzn=$gitn
n=0
while [ -e $gzn.tar.gz ]
do
let ++n
gzn="$gitn($n)"
done
tar czfv $gzn.tar.gz $gitcdir >/dev/null 2>&1
if [ $? -ne 0 ]
then
echo "directory could not be packed!"
exit 1
fi
fi
rm -Rf $gitcdir
if [ $? -ne 0 ]
then
echo "[tmp] directory could not be deleted!"
exit 1
fi
du -h $gzn.tar.gz