#!/bin/bash

BASEDIR=testcomponentclojureversion

rm -rf "$BASEDIR"
mkdir -p "$BASEDIR"
pushd "$BASEDIR" > /dev/null

echo ""
echo "Testing Clojure 1.8.0 and Component 0.4.0"
mkdir testclj18
pushd testclj18 > /dev/null
cat > project.clj <<EOF
(defproject testclj17 "0.1.0-SNAPSHOT"
  :pedantic? :abort
  :dependencies [[org.clojure/clojure "1.8.0"]
                 [com.stuartsierra/component "0.4.0"]])
EOF
echo "lein deps :tree"
lein deps :tree
echo "Loading com.stuartsierra.component"
lein run -m clojure.main -e "(try (require 'com.stuartsierra.component) (prn :OK) (catch Exception e (println (.getMessage e))))"
popd > /dev/null

echo ""
echo "Testing Clojure 1.7.0 and Component 0.4.0"
mkdir testclj17
pushd testclj17 > /dev/null
cat > project.clj <<EOF
(defproject testclj17 "0.1.0-SNAPSHOT"
  :pedantic? :abort
  :dependencies [[org.clojure/clojure "1.7.0"]
                 [com.stuartsierra/component "0.4.0"]])
EOF
echo "lein deps :tree"
lein deps :tree
echo "Loading com.stuartsierra.component"
lein run -m clojure.main -e "(try (require 'com.stuartsierra.component) (prn :OK) (catch Exception e (println (.getMessage e))))"
popd > /dev/null

echo ""
echo "Testing Clojure 1.6.0 and Component 0.4.0"
mkdir testclj16
pushd testclj16 > /dev/null
cat > project.clj <<EOF
(defproject testclj17 "0.1.0-SNAPSHOT"
  :pedantic? :abort
  :dependencies [[org.clojure/clojure "1.6.0"]
                 [com.stuartsierra/component "0.4.0"]])
EOF
echo "lein deps :tree"
lein deps :tree
echo "Loading com.stuartsierra.component"
lein run -m clojure.main -e "(try (require 'com.stuartsierra.component) (prn :OK) (catch Exception e (println (.getMessage e))))"
popd > /dev/null

echo "############################################################"

echo ""
echo "Testing Clojure 1.6.0 and Component 0.4.1-SNASPHOT"
mkdir testclj16-c041
pushd testclj16-c041 > /dev/null
cat > project.clj <<EOF
(defproject testclj17 "0.1.0-SNAPSHOT"
  :pedantic? :abort
  :dependencies [[org.clojure/clojure "1.6.0"]
                 [com.stuartsierra/component "0.4.1-SNAPSHOT"]])
EOF
echo "lein deps :tree"
lein deps :tree
echo "Loading com.stuartsierra.component"
lein run -m clojure.main -e "(try (require 'com.stuartsierra.component) (prn :OK) (catch Exception e (println (.getMessage e))))"
popd > /dev/null


echo ""
echo "Testing Clojure 1.8.0 and Component 0.4.1-SNASPHOT"
mkdir testclj18-c041
pushd testclj18-c041 > /dev/null
cat > project.clj <<EOF
(defproject testclj17 "0.1.0-SNAPSHOT"
  :pedantic? :abort
  :dependencies [[org.clojure/clojure "1.8.0"]
                 [com.stuartsierra/component "0.4.1-SNAPSHOT"]])
EOF
echo "lein deps :tree"
lein deps :tree
echo "Loading com.stuartsierra.component"
lein run -m clojure.main -e "(try (require 'com.stuartsierra.component) (prn :OK) (catch Exception e (println (.getMessage e))))"
popd > /dev/null