/
www-static.g
49 lines (38 loc) · 1.21 KB
/
www-static.g
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#
# This example demonstrates a web server with basic authentication, serving static web pages.
# It uses the SERVE-FILE directive.
#
@prefix u "http://www.genyris.org/lang/utilities#"
@prefix task "http://www.genyris.org/lang/task#"
@prefix sys "http://www.genyris.org/lang/system#"
include 'examples/www-basic-auth.g'
define script
(File(.new @FILE))
.abs-path
define script-dir
'/'
.join
reverse
right
reverse
script (.split '/')
var *users* (graph)
*users*
.add
triple ^demo ^hasPassword ^demo
.add
triple ^foo ^hasPassword ^bar
.add
triple ^user1 ^hasPassword ^pw1
.add
triple ^user2 ^hasPassword ^pw2
def valid-logon?(username password)
equal? 1
(*users* (.select (intern username) ^hasPassword (intern password)))(.length)
def handle-authenticated-request (request username)
list ^SERVE-FILE script-dir (request(.getPath)) ^ls
cond
(and sys:argv (equal? (task:id)!name 'main'))
httpd 8000 @FILE
u:format "Server listening on http://127.0.0.1:8000/\nType Ctrl-C to halt."
read