#!/bin/sh
# Dieses Script archiviert und komprimiert eine Quell-Datei/ein Quell-Verzeichnis in ein
# Verzeichnis mit dem Namen [Quellnamen].archiv und legt dort ein Inhaltsverzeichnis
# des Archivs an# ----------------begin function yesno----------
yesno(){
antw=""
while [ "$antw"="" ]; do
# gehe über alle Parameter und gib sie aus
echo "$@? (y/n)"
# lese in variable ans Benutzereingabe ein
read ans

case $ans in
# case sensetiv und en/de akzptieren
y|Y|j|J ) antwort="j";;
n|N ) antwort="n";;
* ) echo "antwoten Sie mit <j> oder <n>";;
esac
done

}
# ----------------end function yesno----------
# wenn kein Parameter
myname=$0
parameter=$1
# Entfernen des letzten Slash hinter dem Parameter, wenn vorhanden
if [ "${parameter%/}" != "" ] ; then
parameter=${parameter%/}
fi
if [ $# -eq 0 ] ; then
echo "Hilfe : `basename $myname` [-h|--help]"
echo "Version: `basename $myname` [-v|--version]"
else
# wenn mehr als ein Parameter
if [ $# -gt 1 ] ; then
echo "Zu viele Parameter!"
echo "Hilfe: `basename $myname` [-h|--help]"
exit 1
else
case $parameter in
# Ausgabe "Hilfe"
-h|--help)
echo "
Dieses Script archiviert und komprimiert eine Datei oder ein[e] Verzeichnis[struktur]
in ein Verzeichnis mit dem Namen [Quelle].archiv und legt dort ein Inhaltsverzeichnis
des Archivs an.
Beispiel:

mytar /home/user/Mail
Ergebnis -> /home/user/Mail.archiv -> mit Mail.tgz
-> und inhalt.txt"
exit 0 ;;
# Ausgabe "Version"
-v|--version)
echo "mytar v1.0 (10.06.2002, tchr)"
exit 0 ;;
esac
# wenn Datei oder Verzeichnis nicht existiert
if ! [ -e $parameter ] ; then
echo "Datei oder Verzeichnis existiert nicht!"
exit 1
# wenn Archiv schon existiert
elif [ -e ${parameter}.archiv ] ; then
echo "${parameter}.archiv ist schon vorhanden"
echo yesno "soll ${parameter}.archiv ueberschrieben werden <j/n>"
if [ $antwort="j" ]; then
# Erstellen des Archivs
tar -czf ${parameter}.archiv/`basename ${parameter}`.tgz
# Erstellen der Inhaltsverzeichnis-Datei
tar -t ${parameter}.archiv/`basename ${parameter}`.tgz > ${parameter}.archiv/inhalt.txt
exit 0
else
echo "Aktion abgebrochen"
exit 0
fi


else
# Verzeichnis erstellen
mkdir ${parameter}.archiv
# Erstellen des Archivs
tar -czf ${parameter}.archiv/`basename ${parameter}`.tgz
# Erstellen der Inhaltsverzeichnis-Datei
tar -t ${parameter}.archiv/`basename ${parameter}`.tgz > ${parameter}.archiv/inhalt.txt
fi
fi
fi
exit 0
# Ende ---------------------------------------------------------------------------------