File: 1.10.0a/shell-install.sh (View as HTML)

  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 $1 $2"
 50:  if [ "$FN_DUMMY" != "1" ]; then
 51:  /bin/cp -Rf -v $1 $2
 52:  fi
 53:  }
 54: 
 55: function docpa
 56:  {
 57:  echo "/bin/cp -Rf -v $1* $2"
 58:  if [ "$FN_DUMMY" != "1" ]; then
 59:  /bin/cp -Rf -v $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: