Sure, but those return codes correspond to some ending state of your
application, which can occur via a normal function return, or through an
exception. In both cases, your -main function can map state to exit code.
For instance, let's assume that your application will return or except. In
example below I'm using Slingshot to handle the exceptions:
(defn -main [& args]
(try+
(apply app args) (System/exit 0)
(catch [:exit :app/bad-data] _ (System/exit 1))
(catch [:exit :app/connect-failed] _ (System/exit 2))))
Alternatively, if the app function returns the status rather than excepts:
(defn -main [& args]
(System/exit
(case (apply app args)
:app/ok 0
:app/bad-data 1
:app/connect-failed 2)))
- James
On 8 May 2014 14:23, Dave Tenny <[email protected]> wrote:
> When running as an uberjar, i.e. "java -jar myapp.jar [args]"
> the return code of the process to the shell is very important.
> System/exit is how that return code is sent.
>
>
> On Thu, May 8, 2014 at 9:20 AM, James Reeves <[email protected]>wrote:
>
>> Having your application call System/exit directly is often indicative of
>> some unnecessary coupling in your code.
>>
>> Under what circumstances does your application need to exit?
>>
>> - James
>>
>>
>> On 22 April 2014 17:59, Dave Tenny <[email protected]> wrote:
>>
>>> I have an app I'm building. It calls System/exit. That doesn't works
>>> so well if I'm debugging in the REPL however.
>>>
>>> What's the preferred method of determining whether I'm in REPL mode
>>> interaction vs running as a standalone app?
>>>
>>> Also, long as I'm asking and being lazy, does the -main function return
>>> value translate to a System/exit value if it's numeric?
>>> Or is System/exit the way to go?
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to [email protected]
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to [email protected]
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "Clojure" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/clojure/KZJQsmOeiHc/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to [email protected]
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.