blob: fef54b40bfdf4653f62842a08f7b4250235beaa9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
#! /bin/sh
##
## $Id: rancid-cvs.in,v 1.18 2006/05/28 16:38:52 heas Exp $
##
## Copyright (C) 1997-2006 by Terrapin Communications, Inc.
## All rights reserved.
##
## This software may be freely copied, modified and redistributed
## without fee for non-commerical purposes provided that this license
## remains intact and unmodified with any RANCID distribution.
##
## There is no warranty or other guarantee of fitness of this software.
## It is provided solely "as is". The author(s) disclaim(s) all
## responsibility and liability with respect to this software's usage
## or its effect upon hardware, computer systems, other software, or
## anything else.
##
## Except where noted otherwise, rancid was written by and is maintained by
## Henry Kilmer, John Heasley, Andrew Partan, Pete Whiting, and Austin Schutz.
##
#
# Create all of the misc files & dirs needed for each group and import them
# into CVS or Subversion.
#
# rancid-cvs
#
# Read in the environment
ENVFILE="@sysconfdir@/rancid.conf"
. $ENVFILE
# Base dir
if [ ! -d $BASEDIR ]; then
mkdir -p $BASEDIR ||
(echo "Could not create local state directory: $BASEDIR"; exit 1)
fi
cd $BASEDIR
# RCS system
RCSSYS=${RCSSYS:=cvs};
if [ $RCSSYS != "cvs" -a $RCSSYS != "svn" ] ; then
echo "$RCSSYS is not a valid value for RCSSYS."
exit 1
fi
# Top level CVS stuff
if [ ! -d $CVSROOT ]; then
if [ $RCSSYS = cvs ]; then
cvs -d $CVSROOT init
else
svnadmin create $CVSROOT
fi
fi
# Log dir
if [ ! -d logs ]; then
mkdir logs
fi
# Which groups to do
if [ $# -ge 1 ] ; then
LIST_OF_GROUPS="$*"; export LIST_OF_GROUPS
elif [ "$LIST_OF_GROUPS" = "" ] ; then
echo "LIST_OF_GROUPS is empty in $ENVFILE"
exit 1
fi
for GROUP in `echo $LIST_OF_GROUPS` ;
do
DIR=$BASEDIR/$GROUP
# Directory for the group and the configs
if [ ! -d $DIR ]; then
mkdir -p $DIR
cd $DIR
if [ $RCSSYS = cvs ]; then
cvs import -m "$GROUP" $GROUP new rancid
cd $BASEDIR
cvs checkout $GROUP
else
svn import -m "$GROUP" . file://$CVSROOT/$GROUP
cd $BASEDIR
svn checkout file://$CVSROOT/$GROUP $GROUP
fi
fi
cd $DIR
if [ ! -d configs ]; then
mkdir configs
$RCSSYS add configs
$RCSSYS commit -m 'new' configs
fi
# main files
if [ ! -f routers.all ]; then
touch routers.all
fi
if [ ! -f routers.down ]; then
touch routers.down
fi
if [ ! -f routers.up ]; then
touch routers.up
fi
if [ ! -f router.db ]; then
touch router.db
$RCSSYS add router.db
$RCSSYS commit -m 'new' router.db
fi
done
|