Comment automatiser le démarrage jetée / appengine-magie et Swank?
-
24-10-2019 - |
Question
Avec mon Clojure / projet AppEngine-magie, je commence actuellement les choses comme ceci:
lein repl
(doto 'tlog.core require in-ns)
(compile 'tlog.core)
(ae/start tlog-app)
(require 'swank.swank) (swank.swank/start-repl 4005)
tlog.core a:
(:require [appengine-magic.core :as ae])
Au lieu d'ae / commencer, je pourrais utiliser, je pense:
(use 'ring.adapter.jetty)
(run-jetty (var tlog.core/tlog-app-handler) {:port 8080})
Je voudrais mettre tout cela derrière une seule commande.
Toutes les tentatives pour gérer cela via un -main
utilisé avec lein run
ou en écrivant un plugin Leiningen échoué en raison de l'espace de noms / problèmes de chemin.
Alors, comment peut-il être fait?
La solution
Merci à un exemple donné par quelqu'un qui a préféré ne pas répondre ici, j'ai maintenant une assez bonne solution.
Ajout à mon project.clj:
:repl-init-script "src/tlog/init_repl.clj"
sera déclenchée sur l'exécution lein repl
.
Init-repl.clj:
(ns user
"Init script for Leiningen REPL."
(:require [appengine-magic.core :as ae])
(:use [clojure.stacktrace]
[clojure.contrib.repl-utils :only (show)]
[tlog.core]))
(defn reload!
"Force a reload of everything."
[]
(require 'tlog.core :reload-all))
(compile 'tlog.core)
(ae/serve tlog-app)
(println "Interactive Jetty instance started. To force a reload: (reload!)")
(require 'swank.swank) (swank.swank/start-repl 4005)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow