Initial commit

This commit is contained in:
Christopher Baines 2025-07-16 14:23:04 +01:00
commit 9c99aa375b
32 changed files with 378 additions and 0 deletions

45
ENTRY Normal file
View file

@ -0,0 +1,45 @@
;; This an Artanis ENTRY file, don't remove it!
(use-modules (artanis artanis)
;; Put modules you want to be imported here
;; only for this file, not controllers/views
(artanis utils))
(use-modules (srfi srfi-71)
(artanis artanis)
(web uri)
(web client)
(web request))
;; Put whatever you want to be called before server initilization here
(init-server #:statics '(png gif jpg jpeg ico html js json csv xml css woff woff2 ttf))
(add-to-load-path (string-append (current-toplevel) "/lib"))
;; Put whatever you want to be called before server running here
(get "/"
(lambda ()
(let* ((uri
(string->uri
(string-append
;; No HTTPS because Guile/Guile GnuTLS doesn't
;; support TLS handshakes on a non blocking socket
;; yet
"http://data.guix.gnu.org"
"/revision/e5478c6acf74c3d5b1d25125baac23171403bd1d"
"/packages.json?locale=en_US.UTF-8&field=version&field=synopsis&limit_results=100")))
(socket
(open-socket-for-uri uri)))
;; If you comment out the following line, this example will work
(fcntl socket F_SETFL (logior O_NONBLOCK (fcntl socket F_GETFL)))
(let ((response
body
(http-get uri
#:port socket
#:streaming? #t)))
(simple-format #f "~A" (json->scm body))))))