/[fai]/branches/stable/3.4/lib/get-config-dir-svn
ViewVC logotype

Contents of /branches/stable/3.4/lib/get-config-dir-svn

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6525 - (show annotations) (download)
Mon May 9 16:04:58 2011 UTC (2 years ago) by mika
File size: 1925 byte(s)
get-config-dir-svn: Fix broken-pipe error in SVN URL check

(cherry picked from commit e43119d50cb223329523c5202d2959e2336b5f7c)

Conflicts:

	3.4/lib/get-config-dir-svn

From: Michael Prokop <mika@grml.org>
1 #!/bin/bash
2
3 # (c) 2002-2006 Henning Glawe <glaweh@debian.org>
4
5 ### BEGIN SUBROUTINE INFO
6 # Provides-Var:
7 # Requires-Var: $FAI_CONFIG_SRC $FAI $LOGDIR
8 # Suggests-Var:
9 # Short-Description: get $FAI from an svn repository.
10 ### END SUBROUTINE INFO
11
12 # matched string: "svn://user@host/svnpath"
13 protocol=$(expr match "$FAI_CONFIG_SRC" '\([^:]*\)://')
14 # username may or may not be followed by a password
15 username=$(expr match "$FAI_CONFIG_SRC" '[^:]*://\([^@:]*\)[^@]*@')
16 if [ -n "$username" ] ; then
17 svnpath=$(expr match "$FAI_CONFIG_SRC" '[^:]*://[^@]\+@\([^[:space:]]\+\)')
18 # password definitely is preceded by a username
19 password=$(expr match "$FAI_CONFIG_SRC" '[^:]*://[^@:]*:\([^@]*\)@')
20 [ -n "$password" ] && pass="--password $password"
21 else
22 svnpath=$(expr match "$FAI_CONFIG_SRC" '[^:]*://\([^[:space:]]\+\)')
23 fi
24
25 case $protocol in
26 svn)
27 svnurl="svn://$svnpath"
28 ;;
29 svn+file)
30 svnurl="file://$svnpath"
31 ;;
32 svn+http)
33 svnurl="http://$svnpath"
34 ;;
35 svn+https)
36 svnurl="https://$svnpath"
37 ;;
38 svn+ssh)
39 if [ -n "$username" ] ; then
40 svnurl="svn+ssh://$username@$svnpath"
41 else
42 svnurl=$FAI_CONFIG_SRC
43 fi
44 ;;
45 *)
46 echo "get-config-dir-svn: protocol $protocol not implemented"
47 exit 1
48 ;;
49 esac
50
51 [ -n "$username" ] && user="--username $username"
52
53 if [ -d "$FAI/.svn" ] ; then
54 if [ `svn info $FAI | grep '^URL:' | egrep -o '://.+'` == "://$svnpath" ]; then
55 echo "Updating SVN in $FAI"
56 cd $FAI
57 svn up $user $pass | grep -v 'Updated to revision' > $LOGDIR/getconf.log
58 task_error 701 ${PIPESTATUS[0]}
59 else
60 echo "$FAI already contains a svn repository, but it is not from $svnurl!" >&2
61 echo "Please delete $FAI manually. Fatal error." >&2
62 task_error 703
63 fi
64 else
65 echo "Checking out SVN"
66 svn co $user $pass $svnurl $FAI | grep -v 'Checked out revision' > $LOGDIR/getconf.log
67 task_error 702 ${PIPESTATUS[0]}
68 fi

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.5