Mike Meyer wrote:

Is there any way to tell if inside a .clj file if it was invoked as a
script by clojure.main, vs. being loaded for use elsewhere?

Use a shebang line that calls a wrapper script, e.g. clj-script, that passes a command-line arg to tell the code it's being run as a script.

$ ls
clj-script  example.clj

$ cat clj-script
#!/bin/bash
clj "$@" --script

$ cat example.clj
#!/usr/bin/env clj-script
(ns example)
(println
  (if *command-line-args*
    "I am a script."
    "I am not a script."))

$ PATH="$PWD:$PATH" ./example.clj
I am a script.

$ repl
Clojure 1.2.0-master-SNAPSHOT
user=> (use 'example)
I am not a script.
nil

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to