Mein erstes echtes bash-Skript!

...erstellt ein Repository und liegt unter /root/tilman/create_repository.sh. Nächstes Ziel: Subversion hook script für automatisiertes Update, damit die Webentwicklung so richtig losgehen kann.

#!/bin/sh

# Erstellt ein Repository unterhalb von /home/svn-repos,
# traegt es in die httpd.conf ein und startet Apache neu
#
# Optionen: -n um den Eintrag in die httpd.conf und den Apache-Neustart
#   abzuschalten
# Parameter: Pfad des neuen Repository (unterhalb von /home/svn-repos/)

if [ $# -eq 2 ]
then
  if [ $1 == "-n" ]
  then
    # Slashes am Anfang und Ende der Pfadangabe entfernen
    repos=${2%\/}
    repos=${repos#\/}
    updateconf=false
  else
    echo "usage: create_repository [-n] repository_path"
    exit 1
  fi
else
  if [ $# -eq 1 ]
  then
    # Slashes am Anfang und Ende der Pfadangabe entfernen
    repos=${1%\/}
    repos=${repos#\/}
    updateconf=true
  else
    echo "usage: create_repository [-n] repository_path"
    exit 2
  fi
fi

mkdir /home/svn-repos/$repos
svnadmin create /home/svn-repos/$repos
chown -R svn.svn /home/svn-repos/$repos
chmod -R ug+w /home/svn-repos/$repos
chmod ug+s /home/svn-repos/$repos /home/svn-repos/$repos/*

# in httpd.conf eintragen und Apache neu starten
if [ $updateconf = true ]
then
  echo "
<Location /svn/$repos>
  DAV svn
  SVNPath /home/svn-repos/$repos
  SVNIndexXSLT \"/subversion-xslt/svnindex.xsl\"
  AuthType Basic
  AuthName \"siarp.de repository\"
  AuthUserFile /home/svn-repos/svn-auth-file
  Require user martin tilman
  SSLRequireSSL
</Location>
" >> /usr/local/apache2/conf/httpd.conf

  /usr/local/apache2/bin/apachectl restart
fi

Kommentare

0.2?

/usr/local/apache2/bin/apachectl restart

Was macht denn chmod ug+s /home/svn-repos/$repos /home/svn-repos/$repos/* und warum geht das nicht rekursiv?

Schnelle Antwort

Also eigentlich habe ich diese drei Zeilen mit den Rechten aus einer c't und benutze sie immer, ohne sie zu hinterfragen...

It’s very great