@@ -248,13 +248,50 @@ present"
248
248
`(~'ns ~'cljs.user))
249
249
(repl/run-inits renv inits)
250
250
(when script
251
- (if (= " -" script)
251
+ (cond
252
+ (= " -" script)
252
253
(repl/load-stream renv " <cljs repl>" *in*)
253
- (repl/load-file renv script)))
254
+
255
+ (.exists (io/file script))
256
+ (repl/load-file renv script)
257
+
258
+ (string/starts-with? script " @" )
259
+ (if-let [rsrc (io/resource (subs script 1 ))]
260
+ (repl/load-file renv rsrc)
261
+ (throw
262
+ (ex-info
263
+ (str " Resource script " (subs script 1 ) " does not exist" )
264
+ {:cljs.main/error :invalid-arg })))
265
+
266
+ (string/starts-with? script " @/" )
267
+ (if-let [rsrc (io/resource (subs script 2 ))]
268
+ (repl/load-file renv rsrc)
269
+ (throw
270
+ (ex-info
271
+ (str " Resource script " (subs script 2 ) " does not exist" )
272
+ {:cljs.main/error :invalid-arg })))
273
+
274
+ (string/starts-with? script " -" )
275
+ (throw
276
+ (ex-info
277
+ (str " Expected script or -, got flag " script " instead" )
278
+ {:cljs.main/error :invalid-arg }))
279
+
280
+ :else
281
+ (throw
282
+ (ex-info
283
+ (str " Script " script " does not exist" )
284
+ {:cljs.main/error :invalid-arg }))))
254
285
(when main
255
- (repl/load-file renv (build/ns->source main))
256
- (repl/evaluate-form renv (ana-api/empty-env ) " <cljs repl>"
257
- `(~(symbol (name main) " -main" ) ~@args)))
286
+ (let [src (build/ns->source main)]
287
+ (when-not (io/resource src)
288
+ (throw
289
+ (ex-info
290
+ (str " Namespace " main " does not exist" )
291
+ {:cljs.main/error :invalid-arg })))
292
+ (repl/load-file renv src)
293
+ (repl/evaluate-form renv (ana-api/empty-env ) " <cljs repl>"
294
+ `(~(symbol (name main) " -main" ) ~@args))))
258
295
(repl/tear-down renv)))))))
259
296
260
297
(defn- main-opt
0 commit comments