dundalek / closh

Bash-like shell based on Clojure
Eclipse Public License 1.0
1.61k stars 65 forks source link

homebrew recipe #104

Open jeroenvandijk opened 5 years ago

jeroenvandijk commented 5 years ago

A basic packaging script for Mac users. I've tested it on a colleague and myself.

It can be used via:

brew reinstall --verbose --force --HEAD https://raw.githubusercontent.com/jeroenvandijk/closh/feature/homebrew/packaging/closh_zero.rb

closh
$ (println "hello")
hello

It could probably be more generic, but I don't know much about homebrew recipes. The test block also doesn't seem to work. I've added fish as dependency because of #99

Note --verbose --force are not necessary but keep things up to date and help debugging

jeroenvandijk commented 5 years ago

Hehe looking at install process of some of my collegeaus, distributing an uberjar directly would speed up the install process a lot

dundalek commented 5 years ago

Cool, #99 is fixed now so we can remove the fish dependency.

As for the binary name I would probably suggest using closh-zero-jvm instead of just closh.

It is longer to type but I think it has benefits of possibility to use multiple flavors at the same time (like closh-zero-lumo and closh-zero-planck if it gets ported) and better future compatibility. What do you think?

jeroenvandijk commented 5 years ago

Yes, good points, I fully agree. It is also easy to create your own alias or set it as your default shell, should the name be too long.

Since the implementations and requirements of the different flavors are so different I think it's a good idea to isolate the (homebrew) recipes as well. In the examples I don't see projects with several recipes, so I'm guessing there is some way to define sub recipes. I'll look into that. Otherwise it would mean that the recipe has to be named closh-zero-jvm.rb instead of closh.rb. What do you think here?

dundalek commented 5 years ago

It looks like those sub recipes could probably utilize formula options.

And once we tag a release and build uberjars for download, we could add the uberjar option for simpler and faster installation.

evelant commented 5 years ago

I tried to install this brew recipe and it failed. Here is the output:

Andrews-MBP:~ imagio$ brew install --HEAD closh_zero ==> Cloning https://github.com/dundalek/closh.git Updating /Users/imagio/Library/Caches/Homebrew/closh_zero--git ==> Checking out branch master Already on 'master' Your branch is up to date with 'origin/master'. HEAD is now at 59293de Try to update docker image to fix ci ==> boot uberjar Error: An exception occurred within a child process: Errno::ENOENT: No such file or directory - target/project.jar

dundalek commented 5 years ago

I think the recipe could be changed to download the jar from the releases and depending only on java (without the need for boot). I'm not on mac so any help is appreciated.

orlin commented 4 years ago

I wrote a bash script gh-get-bin to download the latest closh-zero.jar with. It depends on JSONPath.sh which I install with gh-install by running gh-install mclarkson/JSONPath.sh JSONPath.sh ~/bin/ on my system. However, almost forgot that JSONPath.sh requires gawk to run, so I'm not sure if this would help.