├── src
└── leiningen
│ └── new
│ ├── mies
│ ├── repl
│ ├── repl.bat
│ ├── brepl
│ ├── brepl.bat
│ ├── build
│ ├── build.bat
│ ├── release.bat
│ ├── watch
│ ├── watch.bat
│ ├── release
│ ├── repl.clj
│ ├── watch.clj
│ ├── gitignore
│ ├── core.cljs
│ ├── index.html
│ ├── brepl.clj
│ ├── index_release.html
│ ├── build.clj
│ ├── release.clj
│ ├── project.clj
│ └── README.md
│ └── mies.clj
├── .gitignore
├── project.clj
├── README.md
└── LICENSE
/src/leiningen/new/mies/repl:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rlwrap lein trampoline run -m clojure.main scripts/repl.clj
--------------------------------------------------------------------------------
/src/leiningen/new/mies/repl.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | lein trampoline run -m clojure.main scripts\repl.clj
3 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/brepl:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rlwrap lein trampoline run -m clojure.main scripts/brepl.clj
3 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/brepl.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | lein trampoline run -m clojure.main scripts\brepl.clj
3 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/build:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rlwrap lein trampoline run -m clojure.main scripts/build.clj
3 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/build.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | lein trampoline run -m clojure.main scripts\build.clj
3 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/release.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | lein trampoline run -m clojure.main scripts\release.clj
3 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/watch:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rlwrap lein trampoline run -m clojure.main scripts/watch.clj
3 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/watch.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | lein trampoline run -m clojure.main scripts\watch.clj
3 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/release:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rlwrap lein trampoline run -m clojure.main scripts/release.clj
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /target
2 | /classes
3 | /checkouts
4 | pom.xml
5 | pom.xml.asc
6 | *.jar
7 | *.class
8 | /.lein-*
9 | /.nrepl-port
10 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/repl.clj:
--------------------------------------------------------------------------------
1 | (require
2 | '[cljs.repl :as repl]
3 | '[cljs.repl.node :as node])
4 |
5 | (repl/repl (node/repl-env))
6 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/watch.clj:
--------------------------------------------------------------------------------
1 | (require '[cljs.build.api :as b])
2 |
3 | (b/watch "src"
4 | {:main '{{name}}.core
5 | :output-to "out/{{sanitized}}.js"
6 | :output-dir "out"})
7 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/gitignore:
--------------------------------------------------------------------------------
1 | pom.xml
2 | *jar
3 | /lib/
4 | /classes/
5 | /out/
6 | /release/
7 | /target/
8 | .lein-deps-sum
9 | .lein-repl-history
10 | .lein-plugins/
11 | .repl*
12 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/core.cljs:
--------------------------------------------------------------------------------
1 | (ns {{name}}.core
2 | (:require [clojure.browser.repl :as repl]))
3 |
4 | ;; (defonce conn
5 | ;; (repl/connect "http://localhost:9000/repl"))
6 |
7 | (enable-console-print!)
8 |
9 | (println "Hello world!")
10 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{name}}
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/brepl.clj:
--------------------------------------------------------------------------------
1 | (require
2 | '[cljs.build.api :as b]
3 | '[cljs.repl :as repl]
4 | '[cljs.repl.browser :as browser])
5 |
6 | (b/build "src"
7 | {:main '{{name}}.core
8 | :output-to "out/{{sanitized}}.js"
9 | :output-dir "out"
10 | :verbose true})
11 |
12 | (repl/repl (browser/repl-env)
13 | :output-dir "out")
14 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/index_release.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{name}}
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/build.clj:
--------------------------------------------------------------------------------
1 | (require '[cljs.build.api :as b])
2 |
3 | (println "Building ...")
4 |
5 | (let [start (System/nanoTime)]
6 | (b/build "src"
7 | {:main '{{name}}.core
8 | :output-to "out/{{sanitized}}.js"
9 | :output-dir "out"
10 | :verbose true})
11 | (println "... done. Elapsed" (/ (- (System/nanoTime) start) 1e9) "seconds"))
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/release.clj:
--------------------------------------------------------------------------------
1 | (require '[cljs.build.api :as b])
2 |
3 | (println "Building ...")
4 |
5 | (let [start (System/nanoTime)]
6 | (b/build "src"
7 | {:output-to "release/{{sanitized}}.js"
8 | :output-dir "release"
9 | :optimizations :advanced
10 | :verbose true})
11 | (println "... done. Elapsed" (/ (- (System/nanoTime) start) 1e9) "seconds"))
12 |
--------------------------------------------------------------------------------
/project.clj:
--------------------------------------------------------------------------------
1 | (defproject mies/lein-template "0.6.22"
2 | :description "A minimal ClojureScript project template"
3 | :url "http://github.com/swannodette/mies"
4 | :license {:name "Eclipse Public License"
5 | :url "http://www.eclipse.org/legal/epl-v10.html"}
6 | :scm {:name "git"
7 | :url "https://github.com/swannodette/mies"}
8 | :repositories [["clojars" {:sign-releases false}]]
9 | :eval-in-leiningen true)
10 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/project.clj:
--------------------------------------------------------------------------------
1 | (defproject {{name}} "0.1.0-SNAPSHOT"
2 | :description "FIXME: write this!"
3 | :url "http://example.com/FIXME"
4 | :dependencies [[org.clojure/clojure "1.9.0"]
5 | [org.clojure/clojurescript "1.10.339"]]
6 | :jvm-opts ^:replace ["-Xmx1g" "-server"]
7 | :plugins [[lein-npm "0.6.2"]]
8 | :npm {:dependencies [[source-map-support "0.4.0"]]}
9 | :source-paths ["src" "target/classes"]
10 | :clean-targets [:target-path "out" "release"]
11 | :target-path "target")
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # mies
2 |
3 | A minimal ClojureScript template.
4 |
5 | ## Usage
6 |
7 | To create a new project:
8 | ```
9 | lein new mies hello-world
10 | cd hello-world
11 | ```
12 | Most of the following scripts require [rlwrap](http://utopia.knoware.nl/~hlub/uck/rlwrap/) (on OS X installable via brew).
13 |
14 | To compile a developer build version:
15 | ```
16 | scripts/build
17 | ```
18 |
19 | To continuously monitor source files and build when changed:
20 | ```
21 | scripts/watch
22 | ```
23 |
24 | To compile a release version:
25 | ```
26 | scripts/release
27 | ```
28 |
29 | ## License
30 |
31 | Copyright © 2013-2016 David Nolen
32 |
33 | Distributed under the Eclipse Public License either version 1.0 or (at
34 | your option) any later version.
35 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies.clj:
--------------------------------------------------------------------------------
1 | (ns leiningen.new.mies
2 | (:require [leiningen.new.templates :refer
3 | [renderer name-to-path ->files]]))
4 |
5 | (def render (renderer "mies"))
6 |
7 | (defn mies [name]
8 | (let [data {:name name
9 | :sanitized (name-to-path name)}]
10 | (->files data
11 | ["project.clj" (render "project.clj" data)]
12 | ["src/{{sanitized}}/core.cljs" (render "core.cljs" data)]
13 | ["index.html" (render "index.html" data)]
14 | ["index_release.html" (render "index_release.html" data)]
15 | ["README.md" (render "README.md" data)]
16 | [".gitignore" (render "gitignore" data)]
17 | ["scripts/repl" (render "repl" data) :executable true]
18 | ["scripts/repl.bat" (render "repl.bat" data)]
19 | ["scripts/repl.clj" (render "repl.clj" data)]
20 | ["scripts/brepl" (render "brepl" data) :executable true]
21 | ["scripts/brepl.bat" (render "brepl.bat" data)]
22 | ["scripts/brepl.clj" (render "brepl.clj" data)]
23 | ["scripts/watch" (render "watch" data) :executable true]
24 | ["scripts/watch.bat" (render "watch.bat" data)]
25 | ["scripts/watch.clj" (render "watch.clj" data)]
26 | ["scripts/build" (render "build" data) :executable true]
27 | ["scripts/build.bat" (render "build.bat" data)]
28 | ["scripts/build.clj" (render "build.clj" data)]
29 | ["scripts/release" (render "release" data) :executable true]
30 | ["scripts/release.bat" (render "release.bat" data)]
31 | ["scripts/release.clj" (render "release.clj" data)])))
32 |
--------------------------------------------------------------------------------
/src/leiningen/new/mies/README.md:
--------------------------------------------------------------------------------
1 | # {{name}}
2 |
3 | FIXME: Write a one-line description of your library/project.
4 |
5 | ## Overview
6 |
7 | FIXME: Write a paragraph about the library/project and highlight its goals.
8 |
9 | ## Setup
10 |
11 | Most of the following scripts require [rlwrap](http://utopia.knoware.nl/~hlub/uck/rlwrap/) (on OS X installable via brew).
12 |
13 | Build your project once in dev mode with the following script and then open `index.html` in your browser.
14 |
15 | ./scripts/build
16 |
17 | To auto build your project in dev mode:
18 |
19 | ./scripts/watch
20 |
21 | To start an auto-building Node REPL:
22 |
23 | ./scripts/repl
24 |
25 | To get source map support in the Node REPL:
26 |
27 | lein npm install
28 |
29 | To start a browser REPL:
30 |
31 | 1. Uncomment the following lines in src/{{sanitized}}/core.cljs:
32 | ```clojure
33 | ;; (defonce conn
34 | ;; (repl/connect "http://localhost:9000/repl"))
35 | ```
36 | 2. Run `./scripts/brepl`
37 | 3. Browse to `http://localhost:9000` (you should see `Hello world!` in the web console)
38 | 4. (back to step 3) you should now see the REPL prompt: `cljs.user=>`
39 | 5. You may now evaluate ClojureScript statements in the browser context.
40 |
41 | For more info using the browser as a REPL environment, see
42 | [this](https://github.com/clojure/clojurescript/wiki/The-REPL-and-Evaluation-Environments#browser-as-evaluation-environment).
43 |
44 | Clean project specific out:
45 |
46 | lein clean
47 |
48 | Build a single release artifact with the following script and then open `index_release.html` in your browser.
49 |
50 | ./scripts/release
51 |
52 | ## License
53 |
54 | Copyright © 2016 FIXME
55 |
56 | Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.
57 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
2 | LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
3 | CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
4 |
5 | 1. DEFINITIONS
6 |
7 | "Contribution" means:
8 |
9 | a) in the case of the initial Contributor, the initial code and
10 | documentation distributed under this Agreement, and
11 |
12 | b) in the case of each subsequent Contributor:
13 |
14 | i) changes to the Program, and
15 |
16 | ii) additions to the Program;
17 |
18 | where such changes and/or additions to the Program originate from and are
19 | distributed by that particular Contributor. A Contribution 'originates' from
20 | a Contributor if it was added to the Program by such Contributor itself or
21 | anyone acting on such Contributor's behalf. Contributions do not include
22 | additions to the Program which: (i) are separate modules of software
23 | distributed in conjunction with the Program under their own license
24 | agreement, and (ii) are not derivative works of the Program.
25 |
26 | "Contributor" means any person or entity that distributes the Program.
27 |
28 | "Licensed Patents" mean patent claims licensable by a Contributor which are
29 | necessarily infringed by the use or sale of its Contribution alone or when
30 | combined with the Program.
31 |
32 | "Program" means the Contributions distributed in accordance with this
33 | Agreement.
34 |
35 | "Recipient" means anyone who receives the Program under this Agreement,
36 | including all Contributors.
37 |
38 | 2. GRANT OF RIGHTS
39 |
40 | a) Subject to the terms of this Agreement, each Contributor hereby grants
41 | Recipient a non-exclusive, worldwide, royalty-free copyright license to
42 | reproduce, prepare derivative works of, publicly display, publicly perform,
43 | distribute and sublicense the Contribution of such Contributor, if any, and
44 | such derivative works, in source code and object code form.
45 |
46 | b) Subject to the terms of this Agreement, each Contributor hereby grants
47 | Recipient a non-exclusive, worldwide, royalty-free patent license under
48 | Licensed Patents to make, use, sell, offer to sell, import and otherwise
49 | transfer the Contribution of such Contributor, if any, in source code and
50 | object code form. This patent license shall apply to the combination of the
51 | Contribution and the Program if, at the time the Contribution is added by the
52 | Contributor, such addition of the Contribution causes such combination to be
53 | covered by the Licensed Patents. The patent license shall not apply to any
54 | other combinations which include the Contribution. No hardware per se is
55 | licensed hereunder.
56 |
57 | c) Recipient understands that although each Contributor grants the licenses
58 | to its Contributions set forth herein, no assurances are provided by any
59 | Contributor that the Program does not infringe the patent or other
60 | intellectual property rights of any other entity. Each Contributor disclaims
61 | any liability to Recipient for claims brought by any other entity based on
62 | infringement of intellectual property rights or otherwise. As a condition to
63 | exercising the rights and licenses granted hereunder, each Recipient hereby
64 | assumes sole responsibility to secure any other intellectual property rights
65 | needed, if any. For example, if a third party patent license is required to
66 | allow Recipient to distribute the Program, it is Recipient's responsibility
67 | to acquire that license before distributing the Program.
68 |
69 | d) Each Contributor represents that to its knowledge it has sufficient
70 | copyright rights in its Contribution, if any, to grant the copyright license
71 | set forth in this Agreement.
72 |
73 | 3. REQUIREMENTS
74 |
75 | A Contributor may choose to distribute the Program in object code form under
76 | its own license agreement, provided that:
77 |
78 | a) it complies with the terms and conditions of this Agreement; and
79 |
80 | b) its license agreement:
81 |
82 | i) effectively disclaims on behalf of all Contributors all warranties and
83 | conditions, express and implied, including warranties or conditions of title
84 | and non-infringement, and implied warranties or conditions of merchantability
85 | and fitness for a particular purpose;
86 |
87 | ii) effectively excludes on behalf of all Contributors all liability for
88 | damages, including direct, indirect, special, incidental and consequential
89 | damages, such as lost profits;
90 |
91 | iii) states that any provisions which differ from this Agreement are offered
92 | by that Contributor alone and not by any other party; and
93 |
94 | iv) states that source code for the Program is available from such
95 | Contributor, and informs licensees how to obtain it in a reasonable manner on
96 | or through a medium customarily used for software exchange.
97 |
98 | When the Program is made available in source code form:
99 |
100 | a) it must be made available under this Agreement; and
101 |
102 | b) a copy of this Agreement must be included with each copy of the Program.
103 |
104 | Contributors may not remove or alter any copyright notices contained within
105 | the Program.
106 |
107 | Each Contributor must identify itself as the originator of its Contribution,
108 | if any, in a manner that reasonably allows subsequent Recipients to identify
109 | the originator of the Contribution.
110 |
111 | 4. COMMERCIAL DISTRIBUTION
112 |
113 | Commercial distributors of software may accept certain responsibilities with
114 | respect to end users, business partners and the like. While this license is
115 | intended to facilitate the commercial use of the Program, the Contributor who
116 | includes the Program in a commercial product offering should do so in a
117 | manner which does not create potential liability for other Contributors.
118 | Therefore, if a Contributor includes the Program in a commercial product
119 | offering, such Contributor ("Commercial Contributor") hereby agrees to defend
120 | and indemnify every other Contributor ("Indemnified Contributor") against any
121 | losses, damages and costs (collectively "Losses") arising from claims,
122 | lawsuits and other legal actions brought by a third party against the
123 | Indemnified Contributor to the extent caused by the acts or omissions of such
124 | Commercial Contributor in connection with its distribution of the Program in
125 | a commercial product offering. The obligations in this section do not apply
126 | to any claims or Losses relating to any actual or alleged intellectual
127 | property infringement. In order to qualify, an Indemnified Contributor must:
128 | a) promptly notify the Commercial Contributor in writing of such claim, and
129 | b) allow the Commercial Contributor tocontrol, and cooperate with the
130 | Commercial Contributor in, the defense and any related settlement
131 | negotiations. The Indemnified Contributor may participate in any such claim
132 | at its own expense.
133 |
134 | For example, a Contributor might include the Program in a commercial product
135 | offering, Product X. That Contributor is then a Commercial Contributor. If
136 | that Commercial Contributor then makes performance claims, or offers
137 | warranties related to Product X, those performance claims and warranties are
138 | such Commercial Contributor's responsibility alone. Under this section, the
139 | Commercial Contributor would have to defend claims against the other
140 | Contributors related to those performance claims and warranties, and if a
141 | court requires any other Contributor to pay any damages as a result, the
142 | Commercial Contributor must pay those damages.
143 |
144 | 5. NO WARRANTY
145 |
146 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON
147 | AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER
148 | EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR
149 | CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
150 | PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the
151 | appropriateness of using and distributing the Program and assumes all risks
152 | associated with its exercise of rights under this Agreement , including but
153 | not limited to the risks and costs of program errors, compliance with
154 | applicable laws, damage to or loss of data, programs or equipment, and
155 | unavailability or interruption of operations.
156 |
157 | 6. DISCLAIMER OF LIABILITY
158 |
159 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
160 | CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
161 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION
162 | LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
163 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
164 | ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
165 | EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY
166 | OF SUCH DAMAGES.
167 |
168 | 7. GENERAL
169 |
170 | If any provision of this Agreement is invalid or unenforceable under
171 | applicable law, it shall not affect the validity or enforceability of the
172 | remainder of the terms of this Agreement, and without further action by the
173 | parties hereto, such provision shall be reformed to the minimum extent
174 | necessary to make such provision valid and enforceable.
175 |
176 | If Recipient institutes patent litigation against any entity (including a
177 | cross-claim or counterclaim in a lawsuit) alleging that the Program itself
178 | (excluding combinations of the Program with other software or hardware)
179 | infringes such Recipient's patent(s), then such Recipient's rights granted
180 | under Section 2(b) shall terminate as of the date such litigation is filed.
181 |
182 | All Recipient's rights under this Agreement shall terminate if it fails to
183 | comply with any of the material terms or conditions of this Agreement and
184 | does not cure such failure in a reasonable period of time after becoming
185 | aware of such noncompliance. If all Recipient's rights under this Agreement
186 | terminate, Recipient agrees to cease use and distribution of the Program as
187 | soon as reasonably practicable. However, Recipient's obligations under this
188 | Agreement and any licenses granted by Recipient relating to the Program shall
189 | continue and survive.
190 |
191 | Everyone is permitted to copy and distribute copies of this Agreement, but in
192 | order to avoid inconsistency the Agreement is copyrighted and may only be
193 | modified in the following manner. The Agreement Steward reserves the right to
194 | publish new versions (including revisions) of this Agreement from time to
195 | time. No one other than the Agreement Steward has the right to modify this
196 | Agreement. The Eclipse Foundation is the initial Agreement Steward. The
197 | Eclipse Foundation may assign the responsibility to serve as the Agreement
198 | Steward to a suitable separate entity. Each new version of the Agreement will
199 | be given a distinguishing version number. The Program (including
200 | Contributions) may always be distributed subject to the version of the
201 | Agreement under which it was received. In addition, after a new version of
202 | the Agreement is published, Contributor may elect to distribute the Program
203 | (including its Contributions) under the new version. Except as expressly
204 | stated in Sections 2(a) and 2(b) above, Recipient receives no rights or
205 | licenses to the intellectual property of any Contributor under this
206 | Agreement, whether expressly, by implication, estoppel or otherwise. All
207 | rights in the Program not expressly granted under this Agreement are
208 | reserved.
209 |
210 | This Agreement is governed by the laws of the State of Washington and the
211 | intellectual property laws of the United States of America. No party to this
212 | Agreement will bring a legal action under this Agreement more than one year
213 | after the cause of action arose. Each party waives its rights to a jury trial
214 | in any resulting litigation.
215 |
--------------------------------------------------------------------------------