Fork me on GitHub
#tools-deps
<
2019-11-18
>
practicalli-johnny15:11:57

What does the S in -S option for the Clojure CLI tools stand for? The other option names seem to be fairly obvious in meaning when reading clojure --help. For example -A is aliases, -C is classpath, -R resolve, etc. Or is -S just a generic 'catch all' prefix for all other commands?

dharrigan15:11:12

If I was to hazzard a guess, I think it means script - as examining the clojure script file that controls the process, S is used for script commands (internal to the script) and also a tree function, in the script package in tools deps alpha.

dharrigan15:11:23

I could be 100% waaaay of the mark here ... 🙂

Alex Miller (Clojure team)16:11:26

It stands for "settings"

Alex Miller (Clojure team)16:11:57

so, yes a generic prefix to catch many settings

👍 4
Alex Miller (Clojure team)16:11:05

in particular, the command line has a mix of clj args, clojure.main args, and when used as a runner, your own clojure main args

sogaiu16:11:04

at least now i have two mnemonics :)

practicalli-johnny18:11:03

my brain can rest at ease now, thank you Alex.

danielsz23:11:42

@alexmiller Hi Alex, the console-listener Var in clojure.tools.deps.alpha.util.maven appears to be an implementation of the TransferListener interface. However it isn't a complete implementation, and I am seeing errors to that effect.

danielsz23:11:51

Receiver class clojure.tools.deps.alpha.util.maven$reify__7307 does not define or inherit an implementation of the resolved method 'abstract void transferSucceeded(org.eclipse.aether.transfer.TransferEvent)' of interface org.eclipse.aether.transfer.TransferListener.

danielsz23:11:59

Please note that the docs suggest to extend the abstract class AbstractTransferListener rather than implementing the interface. The abstract class ships with no-op callbacks so a partial extension is a-OK and no errors would occur.