Initial commit.

This commit is contained in:
Phil Hagelberg 2009-10-31 14:35:25 -07:00
commit 88b53602f7
5 changed files with 68 additions and 0 deletions

41
README.md Normal file
View file

@ -0,0 +1,41 @@
# Leiningen
"Leiningen!" he shouted. "You're insane! They're not creatures you can
fight--they're an elemental--an 'act of God!' Ten miles long, two
miles wide--ants, nothing but ants! And every single one of them a
fiend from hell...
-- from Leiningen Versus the Ants by Carl Stephenson
Leiningen is a build tool for Clojure designed to not set your hair on fire.
## Usage
$ lein deps # install dependencies in lib/
$ lein compile # ahead-of-time compile into classes/
$ lein repl # launch a REPL with the project classpath configured
$ lein jar # create a jar of the compiled project
$ lein uberjar # create standalone jar that bundles dependencies too
## Configuration
Place a build.clj file in the project root that looks something like this:
(defproject leiningen
:version "1.0-SNAPSHOT"
:dependencies [["org.clojure" "clojure" "1.1.0-alpha-SNAPSHOT"]
["org.clojure" "clojure-contrib" "1.0-SNAPSHOT"]
["org.clojure" "lancet" "1.0-SNAPSHOT"]
["org.apache.ant" "ant" "1.7.1"]
["org.apache.ant" "ant-launcher" "1.7.1"]
["org.apache.maven" "maven-ant-tasks" "2.0.10"]])
## License
Copyright (C) 2009 Phil Hagelberg
Distributed under the Eclipse Public License, the same as Clojure
uses. See the file COPYING.

1
bin/lein Normal file
View file

@ -0,0 +1 @@
#!/bin/bash

13
build.clj Normal file
View file

@ -0,0 +1,13 @@
(ns build
(:use [leiningen]))
(defproject leiningen
:version "1.0-SNAPSHOT"
:dependencies [["org.clojure" "clojure" "1.1.0-alpha-SNAPSHOT"]
["org.clojure" "clojure-contrib" "1.0-SNAPSHOT"]
["org.clojure" "lancet" "1.0-SNAPSHOT"]
["org.apache.ant" "ant" "1.7.1"]
["org.apache.ant" "ant-launcher" "1.7.1"]
["org.apache.maven" "maven-ant-tasks" "2.0.10"]])
;; leiningen will define relevant deps, aot, jar, repl, etc tasks

1
lib/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*

12
src/leiningen.clj Normal file
View file

@ -0,0 +1,12 @@
(ns leiningen
(:use [lancet])
)
(require)
(defmacro defproject [project-name & args]
`(def ~project-name (assoc (apply hash-map (quote ~args))
:name ~(name project-name))))
(deftarget deps "Download all the project's dependencies into lib/")