Skip to content

Instantly share code, notes, and snippets.

@djpowell
Created January 15, 2012 23:51
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save djpowell/1618073 to your computer and use it in GitHub Desktop.
Save djpowell/1618073 to your computer and use it in GitHub Desktop.
Batch files for ClojureScript One on Windows
From cdc729c0ac9dbc0caf8b2ed36888a45a2f582d52 Mon Sep 17 00:00:00 2001
From: David Powell <djpowell@djpowell.net>
Date: Sun, 15 Jan 2012 23:28:22 +0000
Subject: [PATCH] Batch files for Windows Including a batch file to bootstrap
clojurescript
---
script/build.bat | 21 ++++++++++++++++
script/build.clj | 3 ++
script/cljs-repl.bat | 9 +++++++
script/cljs-repl.clj | 5 ++++
script/deps.bat | 32 ++++++++++++++++++++++++
script/get-url.bat | 2 +
script/get_url.clj | 9 +++++++
script/one-clojurescript-bootstrap.bat | 42 ++++++++++++++++++++++++++++++++
script/repl.bat | 9 +++++++
script/run.bat | 9 +++++++
script/setup_classpath.bat | 3 ++
script/startserver.clj | 3 ++
script/test.bat | 9 +++++++
script/test.clj | 3 ++
14 files changed, 159 insertions(+), 0 deletions(-)
create mode 100644 script/build.bat
create mode 100644 script/build.clj
create mode 100644 script/cljs-repl.bat
create mode 100644 script/cljs-repl.clj
create mode 100644 script/deps.bat
create mode 100644 script/get-url.bat
create mode 100644 script/get_url.clj
create mode 100644 script/one-clojurescript-bootstrap.bat
create mode 100644 script/repl.bat
create mode 100644 script/run.bat
create mode 100644 script/setup_classpath.bat
create mode 100644 script/startserver.clj
create mode 100644 script/test.bat
create mode 100644 script/test.clj
diff --git a/script/build.bat b/script/build.bat
new file mode 100644
index 0000000..74d2ebd
--- /dev/null
+++ b/script/build.bat
@@ -0,0 +1,21 @@
+@echo off
+
+pushd %~dp0..
+
+mkdir out
+
+echo Creating out\public...
+xcopy /E /I /Y public out\public
+del out\public\index.html
+del out\public\design.html
+del /S /Q out\public\javascripts\*
+
+call script\setup_classpath.bat
+
+echo Create advanced compiled JavaScript...
+java -server -cp %CLJSC_CP% clojure.main -i script\build.clj
+
+popd
+
+echo [build complete]
+
diff --git a/script/build.clj b/script/build.clj
new file mode 100644
index 0000000..15d3e9b
--- /dev/null
+++ b/script/build.clj
@@ -0,0 +1,3 @@
+(use 'one.tools)
+ (use 'one.sample.config)
+ (build-project config)
diff --git a/script/cljs-repl.bat b/script/cljs-repl.bat
new file mode 100644
index 0000000..357921a
--- /dev/null
+++ b/script/cljs-repl.bat
@@ -0,0 +1,9 @@
+@echo off
+
+pushd %~dp0..
+
+call script\setup_classpath.bat
+
+java -server -cp %CLJSC_CP% clojure.main -i script\cljs-repl.clj --repl
+
+popd
diff --git a/script/cljs-repl.clj b/script/cljs-repl.clj
new file mode 100644
index 0000000..d584e5e
--- /dev/null
+++ b/script/cljs-repl.clj
@@ -0,0 +1,5 @@
+(use '[one.sample.dev-server :only (run-server cljs-repl)])
+ (use '[clojure.java.browse :only (browse-url)])
+ (run-server)
+ (future (Thread/sleep 3000) (browse-url "http://localhost:8080/development"))
+ (cljs-repl)
diff --git a/script/deps.bat b/script/deps.bat
new file mode 100644
index 0000000..26a1117
--- /dev/null
+++ b/script/deps.bat
@@ -0,0 +1,32 @@
+@echo off
+
+pushd %~dp0..
+
+echo Getting lein deps...
+call lein deps
+
+cd lib
+
+call git clone https://github.com/levand/domina.git
+
+call git clone https://github.com/clojure/clojurescript.git
+
+cd domina
+call git checkout -b clojurescript-one-lib c0eb06f677e0f9f72537682e3c702dd27b03e2e4
+
+cd ..\clojurescript
+call git checkout -b clojurescript-one-lib 329708bdd0f039241b187bc639836d9997d8fbd4
+
+copy ..\..\script\one-clojurescript-bootstrap.bat script\
+copy ..\..\script\one-clojurescript-bootstrap.bat script\
+call script\one-clojurescript-bootstrap.bat
+
+echo Copy ClojureScript deps to lib directory...
+
+copy lib\compiler.jar ..
+copy lib\goog.jar ..
+copy lib\js.jar ..
+
+popd
+
+echo [Deps Completed]
diff --git a/script/get-url.bat b/script/get-url.bat
new file mode 100644
index 0000000..e85bef9
--- /dev/null
+++ b/script/get-url.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp %~dp0;%~dp0..\lib\clojure-1.3.0.jar clojure.main -m get-url %1 %2
diff --git a/script/get_url.clj b/script/get_url.clj
new file mode 100644
index 0000000..7a8bce8
--- /dev/null
+++ b/script/get_url.clj
@@ -0,0 +1,9 @@
+(ns get-url
+ (:require [clojure.java.io :as io]))
+
+(defn -main
+ [url path]
+ (with-open [out (io/output-stream (io/file path))
+ in (io/input-stream url)]
+ (io/copy in out)))
+
diff --git a/script/one-clojurescript-bootstrap.bat b/script/one-clojurescript-bootstrap.bat
new file mode 100644
index 0000000..4f55ef1
--- /dev/null
+++ b/script/one-clojurescript-bootstrap.bat
@@ -0,0 +1,42 @@
+@echo off
+
+mkdir lib
+
+rem Clojure already fetched by clojurescriptone
+copy ..\clojure-1.3.0.jar lib\clojure.jar
+
+echo Fetching Google Closure library...
+mkdir closure\library
+cd closure\library
+call ..\..\..\..\script\get-url.bat http://closure-library.googlecode.com/files/closure-library-20110323-r790.zip closure-library-20110323-r790.zip
+jar -xf closure-library-20110323-r790.zip
+echo Cleaning up Google Closure library archive...
+del closure-library-20110323-r790.zip
+cd ..
+
+echo Fetching Google Closure compiler...
+mkdir compiler
+cd compiler
+call ..\..\..\..\script\get-url.bat http://closure-compiler.googlecode.com/files/compiler-latest.zip compiler-latest.zip
+jar -xf compiler-latest.zip
+echo Cleaning up Google Closure compiler archive...
+del compiler-latest.zip
+cd ..\..
+echo Building lib/goog.jar...
+echo jar cf .\lib\goog.jar -C closure/library/closure/ goog
+jar cf .\lib\goog.jar -C closure/library/closure/ goog
+
+echo Fetching Rhino...
+call ..\..\script\get-url.bat http://ftp.mozilla.org/pub/mozilla.org/js/rhino1_7R3.zip rhino1_7R3.zip
+jar -xf rhino1_7R3.zip
+echo Copying rhino1_7R3\js.jar to lib\js.jar...
+copy rhino1_7R3\js.jar lib\js.jar
+echo Cleaning up Rhino directory...
+rmdir /s /q rhino1_7R3
+echo Cleaning up Rhino archive...
+del rhino1_7R3.zip
+
+echo Copying closure\compiler\compiler.jar to lib\compiler.jar
+copy closure\compiler\compiler.jar lib
+
+echo [Bootstrap Completed]
diff --git a/script/repl.bat b/script/repl.bat
new file mode 100644
index 0000000..934a884
--- /dev/null
+++ b/script/repl.bat
@@ -0,0 +1,9 @@
+@echo off
+
+pushd %~dp0\..
+
+call script\setup_classpath.bat
+
+java -server -cp %CLJSC_CP% clojure.main
+
+popd
diff --git a/script/run.bat b/script/run.bat
new file mode 100644
index 0000000..3b15e98
--- /dev/null
+++ b/script/run.bat
@@ -0,0 +1,9 @@
+@echo off
+
+pushd %~dp0..
+
+call script\setup_classpath.bat
+
+java -server -cp %CLJSC_CP% clojure.main -i script\startserver.clj --repl
+
+popd
diff --git a/script/setup_classpath.bat b/script/setup_classpath.bat
new file mode 100644
index 0000000..baa2cd1
--- /dev/null
+++ b/script/setup_classpath.bat
@@ -0,0 +1,3 @@
+set CLOJURESCRIPT_HOME=lib\clojurescript
+
+set CLJSC_CP=lib\*;lib\dev\*;%CLOJURESCRIPT_HOME%\src\clj;%CLOJURESCRIPT_HOME%\src\cljs;%CLOJURESCRIPT_HOME%\test\cljs;lib\domina\src\cljs;src\app\clj;src\app\cljs;src\app\cljs-macros;src\lib\clj;src\lib\cljs;test;templates
diff --git a/script/startserver.clj b/script/startserver.clj
new file mode 100644
index 0000000..6a5d410
--- /dev/null
+++ b/script/startserver.clj
@@ -0,0 +1,3 @@
+(use 'one.sample.dev-server)
+ (run-server)
+ (println "The application is being served from localhost:8080")
diff --git a/script/test.bat b/script/test.bat
new file mode 100644
index 0000000..b250e2d
--- /dev/null
+++ b/script/test.bat
@@ -0,0 +1,9 @@
+@echo off
+
+pushd %~dp0..
+
+call script\setup_classpath.bat
+
+java -server -cp %CLJSC_CP% clojure.main -i script\test.clj
+
+popd
diff --git a/script/test.clj b/script/test.clj
new file mode 100644
index 0000000..d44bf98
--- /dev/null
+++ b/script/test.clj
@@ -0,0 +1,3 @@
+(use 'one.sample.test.suite)
+ (run-all)
+ (shutdown-agents)
--
1.7.7.msysgit.1
@djpowell
Copy link
Author

Windows .bat files for clojurescript one, including a bootstrap script for clojurescript.
Removed dependencies on curl and unzip, which Windows users might not have installed.

@Milhouse
Copy link

Thanks! I've got a Windows XP machine at work, and was thinking of converting the scripts myself, but now I don't have to!

@tzach
Copy link

tzach commented Jan 17, 2012

Thanks!
Work for me on windows 7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment