Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / src / afsinstall / lib / InstallGuides / HPx00_UX9 / rc
CommitLineData
805e021f
CE
1# Copyright 2000, International Business Machines Corporation and others.
2# All Rights Reserved.
3#
4# This software has been released under the terms of the IBM Public
5# License. For details, see the LICENSE file in the top-level source
6# directory or online at http://www.openafs.org/dl/license10.html
7
8# An InstallGuide for installing the initialization script
9# For HP 9000 systems running HPUX 9.x
10#
11
12sub rc {
13# Defaults
14$rcfile = "/etc/rc";
15
16# Add AFS kernel loader to RC file
17&VPrint("Updating $rcfile file");
18&ErrorsAreFatal(1);
19&DisplaceFile("/etc/rc.afs");
20
21# Append the generic RC file
22&ReadInstallGuide("$InstallGuideDir/GENERIC/rc");
23&Appendrc;
24
25# Read in the current RC file
26$Section = "rc";
27$rc = open(RC, $rcfile);
28&ErrorMsg("Could not read file", $rcfile) if (!$rc);
29@line = <RC>;
30close(RC);
31
32# Check if AFS is already referenced
33if (grep(/\bAFS\b/, @line) || grep(/\/usr\/vice\/etc/, @line)) {
34 &Print("AFS appears to already be in $rcfile");
35 return; };
36
37# Find where function localrc() is. If it is not there, put it in after
38# all of the leading comments
39$localrc = -1;
40$comments = 0;
41foreach $n (0 ... $#line) {
42 $comments = $n unless (@line[$n] =~ /^#/ || $comments > 0);
43 if (@line[$n] =~ /^localrc\(\)/) {
44 $localrc = $n;
45 last; }; };
46
47# Insert a localrc() function if one was not already there
48if ($localrc == -1) {
49 splice(@line, $comments, 0, "localrc()\n", "{\n", "}\n", "\n");
50 $localrc = $comments;
51 &Print("Inserted function localrc() in $rcfile");
52 &Print("This should be run after NFS is started"); };
53
54# Skip past the function name and opening curly brace. Account for "{}"
55until (@line[$localrc] =~ /\{/ || $localrc > $#line) { $localrc ++; };
56if (@line[$localrc] =~ /\}/) {
57 @line[$localrc] =~ s/\}//;
58 splice(@line, $localrc+1, 0, "}\n"); };
59$localrc++;
60
61# Insert a call to the AFS rc file
62splice(@line, $localrc, 0,
63 "\# Start AFS\n",
64 "if [ -f /etc/rc.afs ]; then\n",
65 " /bin/sh /etc/rc.afs\n",
66 "fi\n");
67
68# Rewrite the RC file
69$rc = open(RC, "> $rcfile");
70&ErrorMsg("Could not rewrite file" , $rcfile) if (!$rc);
71foreach $line (@line) {
72 print RC $line; };
73close(RC);
74}