Преглед изворни кода

Merge pull request #258 from mkroehnert/server

server.js: add -p commandline parameter to specify port number
Nicolas Petton пре 11 година
родитељ
комит
2cbb1a25ee
3 измењених фајлова са 367 додато и 237 уклоњено
  1. 2 2
      bin/amberc
  2. 15 3
      server/FileServer.st
  3. 350 232
      server/server.js

+ 2 - 2
bin/amberc

@@ -99,8 +99,8 @@ if [ -z $1 ] ; then
 fi
 
 # Define our predefined library combinations
-KERNEL="boot Kernel-Objects Kernel-Classes Kernel-Methods Kernel-Collections Kernel-Exceptions Kernel-Transcript"
-COMPILER="$KERNEL parser Compiler"
+KERNEL="boot Kernel-Objects Kernel-Classes Kernel-Methods Kernel-Collections Kernel-Exceptions Kernel-Transcript Kernel-Announcements"
+COMPILER="$KERNEL parser Compiler Compiler-Exceptions"
 
 # Predefined initializer
 INITIALIZER="$AMBER/js/init.js"

+ 15 - 3
server/FileServer.st

@@ -98,7 +98,9 @@ respondFileNamed: aFilename to: aResponse
 
 	fs readFile: filename do: [:ex :file |
 		ex notNil 
-			ifTrue: [self respondInternalErrorTo: aResponse]
+			ifTrue: [
+				console log: filename, ' does not exist'.
+				self respondInternalErrorTo: aResponse]
 			ifFalse: [
 				type := self class mimeTypeFor: filename.
 				type = 'application/javascript'
@@ -132,8 +134,10 @@ startOn: aPort
 
 start
 	(http createServer: [:request :response |
-	 	self handleRequest: request respondTo: response]) listen: self port.
-	console log: 'Starting file server on port ', self port asString
+	      self handleRequest: request respondTo: response])
+	      on: 'error' do: [:error | console log: 'Error starting server: ', error];
+	      on: 'listening' do: [console log: 'Starting file server on port ', self port asString];
+	      listen: self port.
 ! !
 
 FileServer class instanceVariableNames: 'port mimeTypes'!
@@ -573,6 +577,14 @@ mimeTypeFor: aString
 !FileServer class methodsFor: 'initialization'!
 
 main
+	| arguments portOption port|
+	arguments := process argv.
+	portOption := arguments at: 3 ifAbsent: [nil].
+	port := arguments at: 4 ifAbsent: [nil].
+
+	('-p' = portOption and: [port notNil]) ifTrue: [
+		FileServer port: port.
+	].
 	^self new startOn: self port
 ! !
 

Разлика између датотеке није приказан због своје велике величине
+ 350 - 232
server/server.js


Неке датотеке нису приказане због велике количине промена