diff --git a/.github/hooks/pre-commit b/.github/hooks/pre-commit new file mode 100755 index 00000000000..9dd0d0ef295 --- /dev/null +++ b/.github/hooks/pre-commit @@ -0,0 +1,40 @@ +#!/bin/bash +# Modified from https://github.com/chaitanyagupta/gitutils + +green='\033[0;32m' +no_color='\033[0m' +grey='\033[0;90m' + + +ROOT_DIR=$(git rev-parse --show-cdup) +SUBMODULES=$(grep path ${ROOT_DIR}.gitmodules | sed 's/^.*path = //') +MOD_SUBMODULES=$(git diff --cached --name-only | grep -F "$SUBMODULES") + +echo -e "Checking submodules ${grey}(pre-commit hook)${no_color} " + +# If no modified submodules, exit with status code 0, else prompt the +# user and exit accordingly +if [[ -n "$MOD_SUBMODULES" ]]; then + echo "Submodules to be committed:" + echo " (use \"git reset HEAD ...\" to unstage)" + echo + + for SUB in $MOD_SUBMODULES + do + echo -e "\t${green}modified:\t$SUB${no_color}" + done + echo + echo -n -e "Continue with commit? ${grey}(N|y)${no_color} " + read -n 1 reply git clone git@github.com:TryGhost/Ghost.git ghost Download the Ghost code base npm run init - Short command for: yarn global add knex-migrator ember-cli grunt-cli && yarn install && grunt init + Short command for: yarn global add knex-migrator ember-cli grunt-cli && yarn install && grunt symlink && grunt init knex-migrator init Creates and initialises your database grunt dev diff --git a/package.json b/package.json index c06f25002e4..23a3c1d59c9 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "scripts": { "start": "node index", "test": "grunt validate --verbose", - "init": "yarn global add knex-migrator ember-cli grunt-cli && yarn install && grunt init || true" + "init": "yarn global add knex-migrator ember-cli grunt-cli && yarn install && grunt symlink && grunt init || true" }, "engines": { "node": "^4.2.0 || ^6.5.0" @@ -99,6 +99,7 @@ "grunt-contrib-compress": "1.3.0", "grunt-contrib-copy": "1.0.0", "grunt-contrib-jshint": "1.0.0", + "grunt-contrib-symlink": "^1.0.0", "grunt-contrib-uglify": "2.0.0", "grunt-contrib-watch": "1.0.0", "grunt-cssnano": "2.1.0", diff --git a/yarn.lock b/yarn.lock index 1a822f76023..7afbac2a047 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,6 +1895,10 @@ grunt-contrib-jshint@1.0.0: hooker "^0.2.3" jshint "~2.9.1" +grunt-contrib-symlink@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/grunt-contrib-symlink/-/grunt-contrib-symlink-1.0.0.tgz#c83616c035711a6c0062a2810cf1c77ffc6bed2b" + grunt-contrib-uglify@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-2.0.0.tgz#8c9970d690936cde6d25aa1193549bd929016930"