Browse Source

build: use cross-platform hook installation with shelljs

dev
Evan You 8 years ago
parent
commit
b5f08f3bed
  1. 5
      .github/CONTRIBUTING.md
  2. 8
      build/install-hooks.js
  3. 6
      build/install-hooks.sh
  4. 3
      package.json
  5. 8
      yarn.lock

5
.github/CONTRIBUTING.md

@ -43,7 +43,10 @@ After cloning the repo, run:
$ npm install
```
This would also run the `postinstall` script which will link git commit hooks if you are on a Unix-like system.
This will also run the `postinstall` script which links two git hooks:
- `pre-commit`: runs ESLint on staged files.
- `commit-msg`: validates commit message format (see below).
### Commiting Changes

8
build/install-hooks.js

@ -0,0 +1,8 @@
const { test, ln, chmod } = require('shelljs')
if (test('-e', '.git/hooks')) {
ln('-sf', '../../build/git-hooks/pre-commit', '.git/hooks/pre-commit')
chmod('+x', '.git/hooks/pre-commit')
ln('-sf', '../../build/git-hooks/commit-msg', '.git/hooks/commit-msg')
chmod('+x', '.git/hooks/commit-msg')
}

6
build/install-hooks.sh

@ -1,6 +0,0 @@
#!/usr/bin/env bash
if test -e .git/hooks; then
ln -sf ../../build/git-hooks/pre-commit .git/hooks/pre-commit && chmod +x .git/hooks/pre-commit
ln -sf ../../build/git-hooks/commit-msg .git/hooks/commit-msg && chmod +x .git/hooks/commit-msg
fi

3
package.json

@ -38,7 +38,7 @@
"release": "bash build/release.sh",
"release:weex": "bash build/release-weex.sh",
"release:note": "node build/gen-release-note.js",
"postinstall": "bash build/install-hooks.sh",
"postinstall": "node build/install-hooks.js",
"commit": "git-cz"
},
"repository": {
@ -117,6 +117,7 @@
"rollup-watch": "^4.0.0",
"selenium-server": "^2.53.1",
"serialize-javascript": "^1.3.0",
"shelljs": "^0.7.8",
"typescript": "^2.3.4",
"uglify-js": "^3.0.15",
"webpack": "^2.6.1",

8
yarn.lock

@ -4824,6 +4824,14 @@ shelljs@0.7.6, shelljs@^0.7.5:
interpret "^1.0.0"
rechoir "^0.6.2"
shelljs@^0.7.8:
version "0.7.8"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
dependencies:
glob "^7.0.0"
interpret "^1.0.0"
rechoir "^0.6.2"
signal-exit@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"

Loading…
Cancel
Save