consolidating scripts
authorDan Vanderkam <danvdk@gmail.com>
Fri, 23 Oct 2015 22:31:47 +0000 (18:31 -0400)
committerDan Vanderkam <danvdk@gmail.com>
Sun, 25 Oct 2015 02:44:32 +0000 (22:44 -0400)
.travis.yml
make-prod-combined.sh [deleted file]
make-tests.sh [deleted file]
package.json
run-tests.sh [deleted file]
scripts/build-tests.sh [new file with mode: 0755]
scripts/build.sh [new file with mode: 0755]
scripts/run-tests.sh [new file with mode: 0755]
scripts/watch.sh [new file with mode: 0644]
watch-combined.js [deleted file]
watch-tests.sh [deleted file]

index f318f37..a2ac109 100644 (file)
@@ -4,8 +4,8 @@ node_js:
 
 sudo: false  # Use container-based architecture
 script: >
-    ./make-prod-combined.sh &&
-    ./make-tests.sh &&
-    ./run-tests.sh &&
+    npm run build &&
+    npm run build-tests &&
+    npm run test &&
     curl -O https://raw.githubusercontent.com/danvk/travis-weigh-in/master/weigh_in.py &&
     python weigh_in.py dist/dygraph-combined.js
diff --git a/make-prod-combined.sh b/make-prod-combined.sh
deleted file mode 100755 (executable)
index 6e8f9aa..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-mkdir -p dist
-
-browserify \
-  -v \
-  -t babelify \
-  -t [ envify --NODE_ENV production ] \
-  --debug \
-  --standalone Dygraph \
-  src/dygraph.js \
-  > dist/dygraph.js
-
-# Create dist/dygraph.js.map
-cat dist/dygraph.js | exorcist --base . dist/dygraph.js.map > /dev/null
-
-# Create dist/dygraph.js.min{,.map}
-uglifyjs --compress --mangle \
-  --in-source-map dist/dygraph.js.map \
-  --source-map-include-sources \
-  --source-map dist/dygraph.min.js.map \
-  -o dist/dygraph.min.js \
-  dist/dygraph.js
-
-# Copy to the old location
-cp dist/dygraph.min.js dist/dygraph-combined.js
diff --git a/make-tests.sh b/make-tests.sh
deleted file mode 100755 (executable)
index 3242266..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-browserify \
-  -v \
-  -t babelify \
-  -t [ envify --NODE_ENV development ] \
-  --debug \
-  -o dist/tests.js \
-  auto_tests/tests/*.js
index 5ca91aa..b60a8fb 100644 (file)
@@ -29,6 +29,7 @@
     "babel-core": "^5.8.25",
     "babelify": "^6.3.0",
     "browserify": "^11.2.0",
+    "browserify-header": "^0.9.2",
     "chai": "^3.3.0",
     "coveralls": "^2.11.2",
     "envify": "^3.4.0",
     "watchify": "^3.4.0"
   },
   "scripts": {
-    "test": "make test",
+    "build": "./scripts/build.sh",
+    "watch": "./scripts/watch.sh",
+    "build-tests": "./scripts/build-tests.sh",
+    "test": "./scripts/run-tests.sh",
     "tests-ok": "./scripts/check-no-only.sh"
   },
   "pre-commit": [
diff --git a/run-tests.sh b/run-tests.sh
deleted file mode 100755 (executable)
index 4b1c77f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-# Starts the http-server and runs mocha-phantomjs-based tests
-# Note that you must run `npm run build` or `npm run watch` before running this.
-set -o errexit
-
-# Run http-server and save its PID
-http-server -p 8081 > /dev/null &
-SERVER_PID=$!
-function finish() {
-  kill -TERM $SERVER_PID
-}
-trap finish EXIT
-
-# the following sleep step is not really necessary
-# as http-server starts almost instantenously;
-# but letting the server settle might help prevent
-# possible racing conditions
-sleep 1
-
-# Start the tests
-mocha-phantomjs http://localhost:8081/auto_tests/runner.html
diff --git a/scripts/build-tests.sh b/scripts/build-tests.sh
new file mode 100755 (executable)
index 0000000..216296d
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/bash
+# Create dist/tests.js
+# To run the tests, run `npm run test`
+# To iterate on the tests, use `npm run watch`
+
+browserify \
+  -v \
+  -t babelify \
+  -t [ envify --NODE_ENV development ] \
+  --debug \
+  -o dist/tests.js \
+  auto_tests/tests/*.js
diff --git a/scripts/build.sh b/scripts/build.sh
new file mode 100755 (executable)
index 0000000..d9ea2e2
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/bash
+# This generates:
+# - dist/dygraph.js
+# - dist/dygraph.js.map
+# - dist/dygraph.min.js
+# - dist/dygraph.min.js.map
+set -o errexit
+
+mkdir -p dist
+
+# Create dist/dygraph.js
+browserify \
+  -v \
+  -t babelify \
+  -t [ envify --NODE_ENV development ] \
+  --debug \
+  --standalone Dygraph \
+  src/dygraph.js \
+  > dist/dygraph.tmp.js
+
+# Create dist/dygraph.js.map
+cat dist/dygraph.tmp.js | exorcist --base . dist/dygraph.js.map > dist/dygraph.js
+
+# Create "production" bundle for minification
+browserify \
+  -v \
+  -t babelify \
+  -t [ envify --NODE_ENV production ] \
+  --debug \
+  --standalone Dygraph \
+  src/dygraph.js \
+  > dist/dygraph.tmp.js
+
+# Create dist/dygraph.tmp.js.map
+cat dist/dygraph.tmp.js | exorcist --base . dist/dygraph.tmp.js.map > /dev/null
+
+# Create dist/dygraph.js.min{,.map}
+uglifyjs --compress --mangle \
+  --in-source-map dist/dygraph.tmp.js.map \
+  --source-map-include-sources \
+  --source-map dist/dygraph.min.js.map \
+  -o dist/dygraph.min.js \
+  dist/dygraph.tmp.js
+
+# Copy to the old location
+cp dist/dygraph.min.js dist/dygraph-combined.js
+
+# Build GWT JAR
+jar -cf dist/dygraph-gwt.jar -C gwt org
+
+# Remove temp files.
+rm dist/dygraph.tmp.js
+rm dist/dygraph.tmp.js.map
diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh
new file mode 100755 (executable)
index 0000000..4b1c77f
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/bash
+# Starts the http-server and runs mocha-phantomjs-based tests
+# Note that you must run `npm run build` or `npm run watch` before running this.
+set -o errexit
+
+# Run http-server and save its PID
+http-server -p 8081 > /dev/null &
+SERVER_PID=$!
+function finish() {
+  kill -TERM $SERVER_PID
+}
+trap finish EXIT
+
+# the following sleep step is not really necessary
+# as http-server starts almost instantenously;
+# but letting the server settle might help prevent
+# possible racing conditions
+sleep 1
+
+# Start the tests
+mocha-phantomjs http://localhost:8081/auto_tests/runner.html
diff --git a/scripts/watch.sh b/scripts/watch.sh
new file mode 100644 (file)
index 0000000..d13b88a
--- /dev/null
@@ -0,0 +1,30 @@
+#!/bin/bash
+# Continually regenerate these two files:
+# - dist/dygraph.js
+# - dist/tests.js
+# As source/test files change.
+
+# Clean background processes after quit
+trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT
+
+mkdir -p dist  # in case it doesn't exist; watchify needs it
+
+watchify \
+  -v \
+  -t babelify \
+  -t [ envify --NODE_ENV development ] \
+  --debug \
+  --standalone Dygraph \
+  -o dist/dygraph.js \
+  src/dygraph.js &
+
+watchify \
+  -v \
+  -t babelify \
+  -t [ envify --NODE_ENV development ] \
+  --debug \
+  -o dist/tests.js \
+  auto_tests/tests/*.js &
+
+# Wait until background processes end
+wait
diff --git a/watch-combined.js b/watch-combined.js
deleted file mode 100755 (executable)
index 4ef91ce..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-watchify \
-  -v \
-  -t babelify \
-  -t [ envify --NODE_ENV development ] \
-  --debug \
-  --standalone Dygraph \
-  -o dist/dygraph.js \
-  src/dygraph.js
diff --git a/watch-tests.sh b/watch-tests.sh
deleted file mode 100755 (executable)
index 9b2b648..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-watchify \
-  -v \
-  -t babelify \
-  -t [ envify --NODE_ENV development ] \
-  --debug \
-  -o dist/tests.js \
-  auto_tests/tests/*.js