diff --git a/.gitignore b/.gitignore index a08547b53..783eda0c1 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ node_modules /backend/resources/media /backend/dist/ /backend/- +/backend/.rebel_readline_history /frontend/.cpcache /frontend/npm-debug.log /frontend/target/ diff --git a/backend/deps.edn b/backend/deps.edn index d37496c7f..a87f37f90 100644 --- a/backend/deps.edn +++ b/backend/deps.edn @@ -34,7 +34,11 @@ {:dev {:extra-deps {com.bhauman/rebel-readline {:mvn/version "0.1.4"} org.clojure/tools.namespace {:mvn/version "0.2.11"} + clj-http/clj-http {:mvn/version "2.1.0"} } :extra-paths ["test"]} + :repl {:main-opts ["-m" "rebel-readline.main"]} }} + + diff --git a/backend/src/user.clj b/backend/src/user.clj new file mode 100644 index 000000000..3fcc4981f --- /dev/null +++ b/backend/src/user.clj @@ -0,0 +1,56 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) 2016-2019 Andrey Antukh + +(ns user + (:refer-clojure :exclude [test]) + (:require [clojure.tools.namespace.repl :as repl] + [clojure.walk :refer [macroexpand-all]] + [clojure.pprint :refer [pprint]] + [clojure.test :as test] + [clojure.java.io :as io] + [buddy.core.codecs :as codecs] + [buddy.core.codecs.base64 :as b64] + [buddy.core.nonce :as nonce] + [mount.core :as mount] + [uxbox.main]) + (:gen-class)) + +;; --- Development Stuff + +(defn- make-secret + [] + (-> (nonce/random-bytes 64) + (b64/encode true) + (codecs/bytes->str))) + +(defn- start + [] + (mount/start)) + +(defn- stop + [] + (mount/stop)) + +(defn- start-minimal + [] + (-> (mount/only #{#'uxbox.config/config + #'uxbox.db/datasource + #'uxbox.migrations/migrations}) + (mount/start))) + +(defn- test + ([] (test #"^uxbox.tests.*")) + ([o] + (repl/refresh) + (cond + (instance? java.util.regex.Pattern o) + (test/run-all-tests o) + + (symbol? o) + (if-let [sns (namespace o)] + (do (require (symbol sns)) + (test/test-vars [(resolve o)])) + (test/test-ns o))))) diff --git a/backend/src/uxbox/main.clj b/backend/src/uxbox/main.clj index 1a637a13b..c6bfaf32d 100644 --- a/backend/src/uxbox/main.clj +++ b/backend/src/uxbox/main.clj @@ -2,19 +2,10 @@ ;; License, v. 2.0. If a copy of the MPL was not distributed with this ;; file, You can obtain one at http://mozilla.org/MPL/2.0/. ;; -;; Copyright (c) 2016 Andrey Antukh +;; Copyright (c) 2016-2019 Andrey Antukh (ns uxbox.main - (:refer-clojure :exclude [test]) - (:require [clojure.tools.namespace.repl :as repl] - [clojure.walk :refer [macroexpand-all]] - [clojure.pprint :refer [pprint]] - [clojure.test :as test] - [clojure.java.io :as io] - [mount.core :as mount] - [buddy.core.codecs :as codecs] - [buddy.core.codecs.base64 :as b64] - [buddy.core.nonce :as nonce] + (:require [mount.core :as mount] [uxbox.config :as cfg] [uxbox.migrations] [uxbox.db] @@ -22,43 +13,6 @@ [uxbox.scheduled-jobs]) (:gen-class)) -;; --- Development Stuff - -(defn- start - [] - (mount/start)) - -(defn- stop - [] - (mount/stop)) - -(defn- start-minimal - [] - (-> (mount/only #{#'uxbox.config/config - #'uxbox.db/datasource - #'uxbox.migrations/migrations}) - (mount/start))) - -(defn- make-secret - [] - (-> (nonce/random-bytes 64) - (b64/encode true) - (codecs/bytes->str))) - -(defn- test - ([] (test #"^uxbox.tests.*")) - ([o] - (repl/refresh) - (cond - (instance? java.util.regex.Pattern o) - (test/run-all-tests o) - - (symbol? o) - (if-let [sns (namespace o)] - (do (require (symbol sns)) - (test/test-vars [(resolve o)])) - (test/test-ns o))))) - ;; --- Entry point (only for uberjar) (defn -main diff --git a/docker/devenv/files/start.sh b/docker/devenv/files/start.sh index 1453a8f7f..8d75f47b3 100755 --- a/docker/devenv/files/start.sh +++ b/docker/devenv/files/start.sh @@ -10,8 +10,8 @@ tmux send-keys -t uxbox 'npm run start' enter tmux new-window -t uxbox:2 -n 'backend' tmux select-window -t uxbox:2 tmux send-keys -t uxbox 'cd uxbox/backend' enter C-l -tmux send-keys -t uxbox 'bash ./scripts/fixtures.sh' enter C-l -tmux send-keys -t uxbox 'bash ./scripts/run.sh' enter +tmux send-keys -t uxbox 'clojure -Adev -m uxbox.fixtures' enter C-l +tmux send-keys -t uxbox 'clojure -Adev:repl' enter tmux new-window -t uxbox:3 -n 'services' tmux select-window -t uxbox:3