JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
colored card areas (deck, hand, etc)
[peach-cgt.git] / server.coffee
index fad6347..b3624ae 100644 (file)
@@ -26,7 +26,25 @@ html_handler = (args, out, request, url_parts) ->
                if err
                        return out.end 'Server failed to read index.html'
                out.end data
-       
+
+clean_pathname_regex = new RegExp('[^a-zA-Z/_.-]')
+clean_pathname_regex2 = new RegExp('/[.]')
+clean_pathname_regex3 = new RegExp('^[.-]')
+clean_pathname = (str) ->
+       str = str.replace clean_pathname_regex, '_'
+       str = str.replace clean_pathname_regex2, '/_'
+       return str.replace clean_pathname_regex3, '_'
+
+# serve javascript files from within /usr/share/javascript
+javascript_handler = (args, out, request, url_parts) ->
+       filename = clean_pathname "/usr/share/#{url_parts.pathname}"
+       fs.readFile filename, 'utf8', (err, data) ->
+               if err
+                       out.writeHead 404
+                       return out.end "Server failed to read #{filename}"
+               out.writeHead 200, 'Content-Type': 'text/javascript'
+               out.end data
+
 
 http_server = http.createServer (req, res) ->
        url_parts = url.parse req.url, true
@@ -35,13 +53,15 @@ http_server = http.createServer (req, res) ->
 
        rel_path = url_parts.pathname.substr 1
 
-       if rel_path.substr(rel_path.length - 4) is '.css'
+       if rel_path.substr(0, 11) is 'javascript/'
+               return javascript_handler url_parts.query, res, req, url_parts
+       else if rel_path.substr(rel_path.length - 4) is '.css'
                res.writeHead 200, 'Content-Type': 'text/css'
                return css_handler url_parts.query, res, req, url_parts
        else if rel_path.substr rel_path.length - 3 is '.js'
                res.writeHead 200, 'Content-Type': 'text/javascript'
                return js_handler url_parts.query, res, req, url_parts
-               
+
        return html_handler url_parts.query, res, req, url_parts
 
 http_server.listen listen_port, "127.0.0.1"