From bd3f5082c1990640245f0bdbf7fcf90896b42c26 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Tue, 14 Jan 2025 09:35:51 -0600 Subject: [PATCH] some small lisp ideas --- flake.nix | 12 ++++++++++++ src/main.lisp | 7 ++++++- src/main.scm | 26 ++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 src/main.scm diff --git a/flake.nix b/flake.nix index 9190852..cb7cb50 100644 --- a/flake.nix +++ b/flake.nix @@ -33,6 +33,13 @@ fiveam slite clack + jingle + lack-middleware-static + lack-middleware-session + lack-middleware-mount + lack + lack-util + lack-component woo ningle pkgs.openssl @@ -57,6 +64,11 @@ go nodejs sbcl' + guile + guile-fibers + guile-quickcheck + guile-sjson + guile-config clippy rustc cargo diff --git a/src/main.lisp b/src/main.lisp index 012da67..e5413e7 100644 --- a/src/main.lisp +++ b/src/main.lisp @@ -9,7 +9,12 @@ (asdf:load-system 'log4cl) (asdf:load-system 'fiveam) (asdf:load-system 'clack) +(asdf:load-system 'lack) +(asdf:load-system 'lack-component) +(asdf:load-system 'lack-util) +(asdf:load-system 'lack-middleware-static) (asdf:load-system 'ningle) +(asdf:load-system 'jingle) (defpackage tfcserver (:use :cl :com.inuoe.jzon :spinneret :serapeum)) @@ -18,7 +23,7 @@ (log:config :daily "/tmp/tfc-%Y%m%d.log") -(defvar *app* (make-instance 'ningle:app)) +(defvar *app* (jingle:make-app)) (defconstant *nc-password* (uiop:getenv "NC-PASSWORD")) (defconstant *email-password* (uiop:getenv "EMAIL-PASSWORD")) diff --git a/src/main.scm b/src/main.scm new file mode 100644 index 0000000..4882ae2 --- /dev/null +++ b/src/main.scm @@ -0,0 +1,26 @@ +(use-modules (fibers web server)) + +(define (log body level) + (let* ((current-time (localtime (current-time))) + (time (strftime "%G%m%d|%T" current-time))) + (format #t "[~a] ~a: ~a\n" time level body))) + +(define (log:info body) + (log body "INFO")) + +(define (log:warn body) + (log body "warn")) + +(define (log:debug body) + (log body "debug")) + +(define (log:error body) + (log body "error")) + +(define (handler request body) + (log:info "gore a req") + (values '((content-type . (text/plain))) + "Hello!")) + +(run-server handler #:port 4242) +