File:
0.04.01a/shell-install.sh (
View as Code)
1: #!/bin/bash
2:
3: # FreeNATS shell-install.sh : Installer/Upgrader
4: # Version 0.00
5: # Copyright 2008 PurplePixie Systems, All Rights Reserved
6: # Part of the FreeNATS Package released under the GNU GPL v3
7: # See http://www.purplepixie.org/freenats for more information
8: #
9:
10: if [ "$1" == "dummy" ]; then
11: FN_DUMMY="1"
12: else
13: FN_DUMMY="0"
14: fi
15:
16: if [ "$FN_BASE" == "" ]; then
17: FN_BASE="/opt/freenats/server/base/"
18: fi
19: if [ "$FN_BIN" == "" ]; then
20: FN_BIN="/opt/freenats/server/bin/"
21: fi
22: if [ "$FN_WEB" == "" ]; then
23: FN_WEB="/opt/freenats/server/web/"
24: fi
25:
26: # FN_BASE="/tmp/freenats/server/base/"
27: # FN_BIN="/tmp/freenats/server/bin/"
28: # FN_WEB="/tmp/freenats/server/web/"
29:
30: echo
31: echo FreeNATS Shell Install/Upgrade 0.00
32: echo http://www.purplepixie.org/freenats
33: echo
34: if [ "$FN_DUMMY" == "1" ]; then
35: echo "Dummy Run"
36: echo
37: fi
38:
39: function domv
40: {
41: echo "/bin/mv $1 $2"
42: if [ "$FN_DUMMY" != "1" ]; then
43: /bin/mv $1 $2
44: fi
45: }
46:
47: function docp
48: {
49: echo "/bin/cp -Rf -v --reply=yes $1 $2"
50: if [ "$FN_DUMMY" != "1" ]; then
51: /bin/cp -Rf -v --reply=yes $1 $2
52: fi
53: }
54:
55: function docpa
56: {
57: echo "/bin/cp -Rf -v --reply=yes $1* $2"
58: if [ "$FN_DUMMY" != "1" ]; then
59: /bin/cp -Rf -v --reply=yes $1* $2
60: fi
61: }
62:
63: function domkdir
64: {
65: echo "/bin/mkdir -p $1"
66: if [ "$FN_DUMMY" != "1" ]; then
67: /bin/mkdir -p $1
68: fi
69: }
70:
71:
72:
73: if [ ! -f "server/base/nats.php" ]; then
74: echo "Error: server/base/nats.php not found"
75: echo
76: echo "You must run this script from within the freenats directory i.e."
77: echo "the working directory is /downloads/freenats-xxx/"
78: echo
79: exit 0
80: fi
81:
82: echo -n "Is this an Upgrade or Install [U/i]: "
83: read itype
84:
85: if [ "$itype" == "i" ]; then
86: echo "Performing Fresh Installation"
87:
88:
89: else
90: echo "Performing System Upgrade"
91:
92: fi
93:
94: echo
95: echo "Directory locations - INCLUDE TRAILING SLASH!"
96: echo -n "Base [$FN_BASE]: "
97: read ubase
98: echo -n "Bin [$FN_BIN]: "
99: read ubin
100: echo -n "Web [$FN_WEB]: "
101: read uweb
102:
103: if [ "$ubase" != "" ]; then
104: FN_BASE="$ubase"
105: fi
106: if [ "$ubin" != "" ]; then
107: FN_BIN="$ubin"
108: fi
109: if [ "$uweb" != "" ]; then
110: FN_WEB="$uweb"
111: fi
112:
113: echo
114: echo "Using Installation Directories:"
115: echo "Base: $FN_BASE"
116: echo "Bin : $FN_BIN"
117: echo "Web : $FN_WEB"
118:
119: if [ "$itype" != "i" ]; then
120: if [ ! -d "$FN_BASE" ]; then
121: echo "Upgrade Error: $FN_BASE does not exist"
122: exit 0
123: fi
124: if [ ! -d "$FN_WEB" ]; then
125: echo "Upgrade Error: $FN_WEB does not exist"
126: exit 0
127: fi
128: if [ ! -d "$FN_BIN" ]; then
129: echo "Upgrade Error: $FN_BIN does not exist"
130: exit 0
131: fi
132: else
133: if [ -d "$FN_BASE" ]; then
134: echo "Install Error: $FN_BASE exists"
135: exit 0
136: fi
137: if [ -d "$FN_WEB" ]; then
138: echo "Install Error: $FN_WEB exists"
139: exit 0
140: fi
141: if [ -d "$FN_BIN" ]; then
142: echo "Install Error: $FN_BIN exists"
143: exit 0
144: fi
145: fi
146:
147: echo
148: echo "Installing/Upgrading ---"
149:
150: function cleanup
151: {
152: echo "- Cleaning Up"
153: if [ -f "server/web/firstrun.php" ]; then
154: CMD="server/web/firstrun.php server/web/firstrun-.php"
155: domv $CMD
156: fi
157: if [ -f "server/web/include-.php" ]; then
158: CMD="server/web/include-.php server/web/include.php"
159: domv $CMD
160: fi
161: if [ -f "server/bin/include-.php" ]; then
162: CMD="server/bin/include-.php server/bin/include.php"
163: domv $CMD
164: fi
165: if [ -f "server/base/config-.inc.php" ]; then
166: CMD="server/base/config-.inc.php server/base/config.inc.php"
167: domv $CMD
168: fi
169: }
170:
171: cleanup
172:
173:
174: if [ "$itype" == "i" ]; then
175: echo "- Fresh Install"
176: echo "- Creating Directories"
177:
178: CMD="$FN_BASE"
179: domkdir $CMD
180: CMD="$FN_WEB"
181: domkdir $CMD
182: CMD="$FN_BIN"
183: domkdir $CMD
184:
185: echo "- Enabling First Run Script"
186: CMD="server/web/firstrun-.php server/web/firstrun.php";
187: domv $CMD
188:
189: else
190:
191: echo "- Upgrade"
192: echo "- Protecting Existing Config"
193: CMD="server/web/include.php server/web/include-.php"
194: domv $CMD
195: CMD="server/bin/include.php server/bin/include-.php"
196: domv $CMD
197: CMD="server/base/config.inc.php server/base/config-.inc.php"
198: domv $CMD
199:
200:
201: fi
202:
203: echo "- Copying Files"
204: CMD="server/base/ $FN_BASE"
205: docpa $CMD
206: CMD="server/web/ $FN_WEB"
207: docpa $CMD
208: CMD="server/bin/ $FN_BIN"
209: docpa $CMD
210:
211:
212: cleanup
213: echo "--- Complete"
214: echo
215:
216: echo "**** THE NEXT STEP ****"
217: echo
218:
219: if [ "$itype" == "i" ]; then
220: echo "If you have moved the directories in relation to each other"
221: echo "i.e. base DOESN\'T lie at ../base from bin and/or web you will"
222: echo "need to edit the following files and change the BaseDir value:"
223: echo -n "$FN_WEB"
224: echo "include.php"
225: echo -n "$FN_BIN"
226: echo "include.php"
227: echo
228: echo "You will also need to edit the following file:"
229: echo -n "$FN_BASE"
230: echo "config.inc.php"
231: echo "and put in your MySQL connection information"
232: echo
233: echo "Once that is done you should browse to http://WEBINSTALL/firstrun.php"
234: echo "to complete database schema setup etc.."
235: echo
236: echo "You will also need to setup the CRON system processes to run the various"
237: echo "scripts as described in the install.html document and online at"
238: echo "http://www.purplepixie.org/freenats"
239: else
240: echo "The files should now have been upgraded and your include"
241: echo "and config.inc files not changed."
242: echo
243: echo "If you need to update the database schema (almost certainly) there are"
244: echo "three ways of doing this - creating fresh (recommended), manually"
245: echo "updating the or you can try the new (pre-pre-pre-alpha) update method."
246: echo
247: echo "To create fresh (reset the database to the current schema) you should"
248: echo "rename the web/firstrun-.php file to web/firstrun.php and browse to"
249: echo "it. Follow the instructions for a clean setup. (You can also manually"
250: echo "import the files see install.html for details)."
251: echo
252: echo "To try the experimental upgrade process see the install.html file."
253: echo
254: echo "If you need to update the schema manually the current schema is in:"
255: echo -n "$FN_BASE"
256: echo "sql/schema.sql"
257: fi
258:
259: echo
260:
261: