Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| anleitung:web:web_server:svnc [16.06.2014 07:58] – Externe Bearbeitung 127.0.0.1 | anleitung:web:web_server:svnc [09.09.2014 06:56] (aktuell) – gelöscht J. Huber | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== SVNC Skript ====== | ||
| - | |||
| - | Skript zum Anlegen, Löschen, ... von Subversion Repositories | ||
| - | |||
| - | |||
| - | <code bash svnc> | ||
| - | #!/bin/bash | ||
| - | ############################################################################## | ||
| - | # | ||
| - | # Wrapper Script for svn command. | ||
| - | # | ||
| - | ############################################################################## | ||
| - | # | ||
| - | # JHE Development / IT-Service Huber, | ||
| - | # Chiemgaustr. 20, | ||
| - | # 83552 Evenhausen, | ||
| - | # Germany | ||
| - | # | ||
| - | ############################################################################## | ||
| - | |||
| - | SVNBASE="/ | ||
| - | SVNEXEC="/ | ||
| - | REPOFILE="/ | ||
| - | CONFIGDIR="/ | ||
| - | |||
| - | interactiveSelectCommands() | ||
| - | { | ||
| - | echo "" | ||
| - | echo " Subversion (SVN) Administration " | ||
| - | echo " =============================== " | ||
| - | echo "" | ||
| - | |||
| - | printf " 1 - empty Erstellt leeres Repository in SVN\n" | ||
| - | printf " 2 - project Erstellt neues Projekt in SVN mit Grundstruktur\n" | ||
| - | printf " 3 - delete Löscht Repository (ACHTUNG! Daten für immer verloren)\n" | ||
| - | printf " 4 - deltify Deltify\n" | ||
| - | printf " 5 - dump Speicher dump\n" | ||
| - | printf " 6 - load Lade dump\n" | ||
| - | printf " 7 - info Zeige Repository Infomrationen\n" | ||
| - | printf " 8 - log Zeige Repository Logs\n" | ||
| - | printf " u - adduser Erstelle neuen SVN-Benutzer oder aendere Passwort\n" | ||
| - | |||
| - | echo "" | ||
| - | echo " q - Abbruch" | ||
| - | echo "" | ||
| - | |||
| - | printf " Auswahl: " | ||
| - | read sel | ||
| - | |||
| - | case $sel in | ||
| - | 1|empty) COMMAND=" | ||
| - | ;; | ||
| - | 2|project) COMMAND=" | ||
| - | ;; | ||
| - | 3|delete) COMMAND=" | ||
| - | ;; | ||
| - | 4|deltify) COMMAND=" | ||
| - | ;; | ||
| - | 5|dump) COMMAND=" | ||
| - | ;; | ||
| - | 6|load) COMMAND=" | ||
| - | ;; | ||
| - | 7|info) COMMAND=" | ||
| - | ;; | ||
| - | 8|log) COMMAND=" | ||
| - | ;; | ||
| - | u|adduser) COMMAND=" | ||
| - | ;; | ||
| - | q) exit; | ||
| - | esac | ||
| - | |||
| - | } | ||
| - | |||
| - | getRepo() | ||
| - | { | ||
| - | if [ " | ||
| - | then | ||
| - | echo "" | ||
| - | echo " Repository-Auswahl" | ||
| - | echo " =============================== " | ||
| - | echo "" | ||
| - | |||
| - | repos=`find $SVNBASE -maxdepth 1 -type d -printf " | ||
| - | cnt=0 | ||
| - | |||
| - | for repo in $repos; | ||
| - | do | ||
| - | if [ " | ||
| - | then | ||
| - | repolist[$cnt]=$repo | ||
| - | else | ||
| - | printf " $cnt: | ||
| - | repolist[$cnt]=$repo | ||
| - | fi | ||
| - | ((cnt=$cnt+1)); | ||
| - | done | ||
| - | |||
| - | echo "" | ||
| - | echo " q - Abbruch" | ||
| - | echo "" | ||
| - | |||
| - | printf "\n Auswahl: " | ||
| - | read sel | ||
| - | |||
| - | if [ " | ||
| - | then | ||
| - | exit; | ||
| - | fi | ||
| - | |||
| - | REPO=${repolist[$sel]} | ||
| - | # echo "-> $REPO" | ||
| - | # read hallo | ||
| - | fi | ||
| - | } | ||
| - | |||
| - | createRepo() | ||
| - | { | ||
| - | if [ " | ||
| - | then | ||
| - | printf " Repository Name: " | ||
| - | read REPO | ||
| - | else | ||
| - | REPO=$1 | ||
| - | fi | ||
| - | |||
| - | svnadmin create $SVNBASE/ | ||
| - | |||
| - | 1. kopiere svnserver.conf | ||
| - | cp $CONFIGDIR/ | ||
| - | rm $SVNBASE/ | ||
| - | rm $SVNBASE/ | ||
| - | printf " Repository Titel: " | ||
| - | read title | ||
| - | if [ " | ||
| - | then | ||
| - | title=$REPO | ||
| - | fi | ||
| - | printf "realm = $title" | ||
| - | |||
| - | chown -R svn:svn $SVNBASE/ | ||
| - | } | ||
| - | |||
| - | createStructure() | ||
| - | { | ||
| - | REPO=$1 | ||
| - | svn co file:// | ||
| - | OldPWD=`pwd` | ||
| - | cd /tmp | ||
| - | cd $REPO | ||
| - | mkdir tags | ||
| - | mkdir work | ||
| - | mkdir public | ||
| - | mkdir work/docs | ||
| - | mkdir work/source | ||
| - | touch work/ | ||
| - | svn add * | ||
| - | svn commit -m " | ||
| - | cd .. | ||
| - | rm -rf $REPO | ||
| - | cd $OldPWD | ||
| - | } | ||
| - | |||
| - | registerRepo() | ||
| - | { | ||
| - | REPO=$1 | ||
| - | |||
| - | printf " | ||
| - | |||
| - | case $COMMAND in | ||
| - | empty) | ||
| - | ;; | ||
| - | project) | ||
| - | printf " | ||
| - | ;; | ||
| - | esac | ||
| - | |||
| - | printf " | ||
| - | |||
| - | 1. rcsvn restart | ||
| - | } | ||
| - | |||
| - | editSvnFiles() | ||
| - | { | ||
| - | mcedit $REPOFILE | ||
| - | mcedit $CONFIGDIR/ | ||
| - | } | ||
| - | |||
| - | unregisterRepo() | ||
| - | { | ||
| - | printf "Bitte manuell austragen...\n"; | ||
| - | } | ||
| - | |||
| - | deleteRepo() | ||
| - | { | ||
| - | REPO=$1 | ||
| - | |||
| - | printf " LÖSCHEN bitte mit JA bestätigen: | ||
| - | read ja | ||
| - | if [ " | ||
| - | then | ||
| - | rm -rf $SVNBASE/ | ||
| - | unregisterRepo $REPO | ||
| - | echo " $REPO unwiederruflich gelöscht!" | ||
| - | fi | ||
| - | } | ||
| - | |||
| - | deltifyRepo() | ||
| - | { | ||
| - | REPO=$1 | ||
| - | svnadmin deltify -r 0:HEAD $SVNBASE/ | ||
| - | } | ||
| - | |||
| - | dumpRepo() | ||
| - | { | ||
| - | REPO=$1 | ||
| - | FILE=$2 | ||
| - | |||
| - | if [ " | ||
| - | then | ||
| - | FILE=$SVNBASE/ | ||
| - | fi | ||
| - | |||
| - | svnadmin dump " | ||
| - | } | ||
| - | |||
| - | loadRepo() | ||
| - | { | ||
| - | REPO=$1 | ||
| - | FILE=$2 | ||
| - | |||
| - | if [ " | ||
| - | then | ||
| - | if [ -e " | ||
| - | then | ||
| - | svnadmin load $SVNBASE/ | ||
| - | else | ||
| - | ls $SVNBASE | ||
| - | printf " Dateinamen bitte angeben: " | ||
| - | read file | ||
| - | printf " | ||
| - | svnadmin load $SVNBASE/ | ||
| - | fi | ||
| - | else | ||
| - | svnadmin load $SVNBASE/ | ||
| - | fi | ||
| - | |||
| - | } | ||
| - | |||
| - | addUser() | ||
| - | { | ||
| - | USER=$1 | ||
| - | PASSWD=$2 | ||
| - | |||
| - | if [ " | ||
| - | then | ||
| - | printf " Benutzernamen (Login): " | ||
| - | read USER | ||
| - | fi | ||
| - | |||
| - | if [ " | ||
| - | then | ||
| - | printf " Passwort für \" | ||
| - | read PASSWD | ||
| - | fi | ||
| - | |||
| - | htpasswd2 -b $CONFIGDIR/ | ||
| - | echo "$USER =$PASSWD" | ||
| - | mcedit $CONFIGDIR/ | ||
| - | mcedit $CONFIGDIR/ | ||
| - | } | ||
| - | |||
| - | |||
| - | COMMAND=$1 | ||
| - | |||
| - | if [ " | ||
| - | then | ||
| - | interactiveSelectCommands | ||
| - | else | ||
| - | shift | ||
| - | fi | ||
| - | |||
| - | REPO=$1 | ||
| - | FILE=$2 | ||
| - | |||
| - | echo " | ||
| - | |||
| - | case $COMMAND in | ||
| - | empty) | ||
| - | createRepo $REPO | ||
| - | registerRepo $REPO | ||
| - | editSvnFiles | ||
| - | ;; | ||
| - | project) | ||
| - | createRepo $REPO | ||
| - | registerRepo $REPO | ||
| - | createStructure $REPO | ||
| - | editSvnFiles | ||
| - | ;; | ||
| - | delete) | ||
| - | getRepo $REPO | ||
| - | deleteRepo $REPO | ||
| - | editSvnFiles | ||
| - | ;; | ||
| - | deltify) | ||
| - | getRepo $REPO | ||
| - | deltifyRepo $REPO | ||
| - | ;; | ||
| - | dump) | ||
| - | getRepo $REPO | ||
| - | shift | ||
| - | dumpRepo $REPO $FILE | ||
| - | ;; | ||
| - | load) | ||
| - | getRepo $REPO | ||
| - | shift | ||
| - | loadRepo $REPO $FILE | ||
| - | ;; | ||
| - | info) | ||
| - | getRepo $REPO | ||
| - | svn info svn:// | ||
| - | ;; | ||
| - | log) | ||
| - | getRepo $REPO | ||
| - | svn log svn:// | ||
| - | ;; | ||
| - | adduser) | ||
| - | # REPO = Benutzername, | ||
| - | addUser $REPO $FILE | ||
| - | ;; | ||
| - | esac | ||
| - | </ | ||
| - | ---- struct data ---- | ||
| - | ---- | ||