From 02e53845545f929e42550c0697abf9834178f4ee Mon Sep 17 00:00:00 2001 From: Jesse Hallett <(none)> Date: Sun, 14 Feb 2016 16:54:13 -0800 Subject: [PATCH 1/2] Make lein_prefer script a bit more robust --- bin/lein_prefer | 69 +++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 39 deletions(-) diff --git a/bin/lein_prefer b/bin/lein_prefer index 760569a..abc5265 100755 --- a/bin/lein_prefer +++ b/bin/lein_prefer @@ -1,51 +1,42 @@ #!/usr/bin/env bash -LEIN_PREFER=`which lein` -LEIN2=`which lein2` - -if [[ ! -z $LEIN2 ]]; then - -LEIN_PREFER=$LEIN2 - -fi - -if [[ ! -z $LEIN_PREFER ]]; then - -LEIN_VER=`$LEIN_PREFER version` - -fi +set -e +LEIN_PREFER="" +LEIN_VER="" LEIN_VER1_PATTERN="^Leiningen\ 1\." - -if [[ -z $LEIN_PREFER || $LEIN_VER =~ $LEIN_VER1_PATTERN ]]; then - -export LEIN_HOME=`pwd`"/bin/.lein" - -if [[ ! -d $LEIN_HOME ]]; then - -mkdir $LEIN_HOME - +BIN=$(cd `dirname $0`; pwd) + +command_exists () { + type "$1" &>/dev/null +} + +download_lein () { + "$BIN/get_lein.js" + chmod +x "$BIN/lein" + echo "$BIN/lein" +} + +if command_exists lein2; then + LEIN_PREFER=lein2 +elif command_exists lein; then + LEIN_PREFER=lein +elif [ ! -x "$LEIN_PREFER" ]; then + LEIN_PREFER="$BIN/lein" fi -LEIN_PREFER=`pwd`"/bin/lein" - +if [ -x "$LEIN_PREFER" ]; then + LEIN_VER=$("$LEIN_PREFER" version) fi -if [[ ! -f $LEIN_PREFER ]]; then - -echo "Leiningen v2 not found, downloading..." - -./bin/get_lein.js - -chmod +x $LEIN_PREFER - +if [[ ! -x "$LEIN_PREFER" || "$LEIN_VER" =~ "$LEIN_VER1_PATTERN" ]]; then + >&2 echo "Leiningen v2 not found, downloading..." + >&2 download_lein fi -if [[ ! -f $LEIN_PREFER ]]; then - -echo "Failed to find or set up Leiningen" -exit 1 - +if [ ! -x "$LEIN_PREFER" ]; then + echo "Failed to find or set up Leiningen" + exit 1 fi -$LEIN_PREFER $@ +"$LEIN_PREFER" $@ From b49ba77adeec0898f2a47cca28f5a599eaf3122f Mon Sep 17 00:00:00 2001 From: Jesse Hallett <(none)> Date: Sun, 14 Feb 2016 17:48:43 -0800 Subject: [PATCH 2/2] Fix get_lein script The existing version of the script was giving me an empty file. --- bin/get_lein.js | 23 ++++++++--------------- package.json | 8 ++++---- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/bin/get_lein.js b/bin/get_lein.js index 07e249b..daf0d59 100755 --- a/bin/get_lein.js +++ b/bin/get_lein.js @@ -1,19 +1,12 @@ #!/usr/bin/env node -var https = require("https"), - fs = require("fs"); +var wget = require('wgetjs'); -var lein_loc = __dirname + "/lein"; - -https.get("https://raw.github.com/technomancy/leiningen/stable/bin/lein", function(res) { - var body = ""; - res.setEncoding("utf8"); - res.on("data", function (chunk) { - body += chunk; - }); - res.on("end", function () { - fs.writeFileSync(lein_loc, body); - }); -}).on("error", function(e) { - console.log("HTTP error: " + e.message); +wget({ + url: "https://raw.github.com/technomancy/leiningen/stable/bin/lein", + dest: __dirname + "/lein", +}, function(err) { + if (err) { + console.log(err.message); + } }); diff --git a/package.json b/package.json index f19dd31..fe25f6b 100644 --- a/package.json +++ b/package.json @@ -32,12 +32,12 @@ "url": "git://github.com/swannodette/mori.git" }, "engines": { - "node": ">=0.8.22" + "node": ">=0.8.22" }, - "dependencies": {}, "devDependencies": { "immutable": "3.5.0", - "jasmine-node": "1.7.0" + "jasmine-node": "1.7.0", + "wgetjs": "0.3.6" }, "scripts": { "build": "./scripts/build.sh", @@ -48,6 +48,6 @@ "test": "jasmine-node spec" }, "directories": { - "test": "./spec" + "test": "./spec" } }