macos103-20031024
[openafs.git] / src / packaging / MacOS / OpenAFS.post_install
1 #!/bin/sh
2 # Portions Copyright (c) 2003 Apple Computer, Inc.  All rights reserved.
3 if [ -d /afs -a ! -h /afs ]; then
4    rmdir /afs
5 fi
6 majorvers=`uname -r | sed 's/\..*//'`
7 if [ $majorvers -ge 7 ]; then
8   # /Network is now readonly, so put AFS in /afs; make sure /afs is a directory
9   if [ -e /afs ]; then
10     if [ -h /afs -o ! -d /afs ]; then
11       rm -f /afs
12       mkdir /afs
13     fi
14   else
15     mkdir /afs
16   fi
17 else
18   mkdir -p /Network/afs
19   if [ ! -h /afs ]; then
20     ln -s /Network/afs /afs
21   fi
22 fi
23
24 cd /var/db/openafs/etc
25
26 if [ ! -f cacheinfo ]; then
27    cp cacheinfo.sample cacheinfo
28 fi
29
30 if [ `grep /Network/afs cacheinfo` ]; then
31     cat cacheinfo |sed s#/Network/afs#/afs# > cacheinfo.new
32     mv cacheinfo.new cacheinfo
33 fi
34
35 # testing case -- upgrading from pre 1.2.7, but .last file exists.
36 # merge the .save and .last....
37 if [ ! -f CellServDB -a -f CellServDB.save -a -f CellServDB.master.last ]; then
38    cp CellServDB.save CellServDB
39 fi
40
41 # upgrading between 2 post-1.2.7 releases (or the testing case)
42 if [ -f CellServDB.master.last ]; then
43   if cmp -s CellServDB.master.last CellServDB.master ; then
44     echo No CellServDB updates
45     done=1
46   fi
47 fi
48
49 # the local changes were included in the update
50 if [ -z "$done" -a  -f CellServDB ]; then
51   if cmp -s CellServDB CellServDB.master ; then
52     echo CellServDB is up to date.
53     cp CellServDB.master CellServDB.master.last
54     done=1
55   fi
56 fi
57
58 if [ -z "$done" ]; then
59   # there are local changes to be merged
60   if [ -f CellServDB -a -f CellServDB.master.last ]; then
61     echo Merging CellServDB entries....
62     perl $1/Contents/Resources/csrvdbmerge.pl
63     echo done
64   else
65     # this is a new install, or an upgrade from pre-1.2.7
66     echo "Installing new CellServDB"
67     cp CellServDB.master CellServDB.master.last
68     cp CellServDB.master CellServDB
69   fi
70 fi
71
72 if [ $majorvers -ge 7 ]; then
73   # make config/settings.plist if it doesn't exist
74   if [ ! -e config/settings.plist -a -e config/settings.plist.orig ]; then
75     cp config/settings.plist.orig config/settings.plist
76   fi
77 elif [ -e config/afssettings ]; then
78   # turn off execution of afssettings
79   chmod a-x config/afssettings
80 fi
81