 
 (defn- generate-exclude-files [project]
   (let [excludes (exclude-files project)
-        content (string/join "\r\n" excludes)]
+        content (joine excludes)]
     (create-tmp-file (ignore-file project) content)))
 
 (defn- invoke [project & args]

  leiningen.jshint
  (:require [leiningen.npm :as npm]
            [leiningen.npm.process :as process]
            [leiningen.help :as help]
            [leiningen.compile]
            [cheshire.core :as json]

   (cons "jshint" args)))

(defn- proc [project & args]
  (try
    (npm/environmental-consistency project)
    (let [file (config-file project)
          content (generate-config-file project)
          includes (include-files project)
          sources (remove empty? (concat (apply vec args) includes))]
      (npm/with-json-file file content project
                          (generate-exclude-files project)
                          (apply invoke project sources)))
    (catch Throwable t
      (println (joine "Can't execute jshint application."
                      "Check that JSHint is:"
                      " - installed correctly: npm install jshint -g"
                      " - configured correctly: https://github.com/vbauer/lein-jshint.git"))
      (main/abort))))


; External API: Task
