From 021cd06baf5ba2babf7f987b1173cce21651d92e Mon Sep 17 00:00:00 2001 From: Misha Grinko Date: Thu, 15 Aug 2024 21:36:57 +0300 Subject: [PATCH] [mate-scripts] add git-hooks folders for vue projects --- mate-scripts/configs/git-hooks/vue/pre-commit | 42 +++++++++++++++++++ .../git-hooks/vueTypescript/pre-commit | 42 +++++++++++++++++++ mate-scripts/package.json | 2 +- 3 files changed, 85 insertions(+), 1 deletion(-) create mode 100755 mate-scripts/configs/git-hooks/vue/pre-commit create mode 100755 mate-scripts/configs/git-hooks/vueTypescript/pre-commit diff --git a/mate-scripts/configs/git-hooks/vue/pre-commit b/mate-scripts/configs/git-hooks/vue/pre-commit new file mode 100755 index 00000000..53db396c --- /dev/null +++ b/mate-scripts/configs/git-hooks/vue/pre-commit @@ -0,0 +1,42 @@ +#!/bin/bash + +function join_by { local IFS="$1"; shift; echo "$*"; } + +PASS=true + +# ESLint +STAGED_JS_FILES=$(git diff --cached --name-only --diff-filter=ACM ./src | grep ".\(j\|t\)sx\{0,1\}$") + +if [[ "$STAGED_JS_FILES" != "" ]]; then + echo "Linting javascript files" + + npx mate-scripts lint --javascript $(join_by " " ${STAGED_JS_FILES}) + + if [[ "$?" == 0 ]]; then + printf "\033[32mESLint Passed\033[0m\n\n" + else + printf "\033[031mESLint Failed\033[0m\n\n" + PASS=false + fi +fi + +# StyleLint +STAGED_CSS_FILES=$(git diff --cached --name-only --diff-filter=ACM ./src | grep ".s\?css$") + +if [[ "$STAGED_CSS_FILES" != "" ]]; then + echo "Linting CSS files" + + npx mate-scripts lint --styles $(join_by " " ${STAGED_CSS_FILES}) + + if [[ "$?" == 0 ]]; then + printf "\033[32mStyleLint Passed\033[0m\n\n" + else + printf "\033[031mStyleLint Failed\033[0m\n\n" + PASS=false + fi +fi + +if ! ${PASS}; then + printf "Pre-commits check failed. Fix problems above before commit.\n\n" + exit 1 +fi diff --git a/mate-scripts/configs/git-hooks/vueTypescript/pre-commit b/mate-scripts/configs/git-hooks/vueTypescript/pre-commit new file mode 100755 index 00000000..53db396c --- /dev/null +++ b/mate-scripts/configs/git-hooks/vueTypescript/pre-commit @@ -0,0 +1,42 @@ +#!/bin/bash + +function join_by { local IFS="$1"; shift; echo "$*"; } + +PASS=true + +# ESLint +STAGED_JS_FILES=$(git diff --cached --name-only --diff-filter=ACM ./src | grep ".\(j\|t\)sx\{0,1\}$") + +if [[ "$STAGED_JS_FILES" != "" ]]; then + echo "Linting javascript files" + + npx mate-scripts lint --javascript $(join_by " " ${STAGED_JS_FILES}) + + if [[ "$?" == 0 ]]; then + printf "\033[32mESLint Passed\033[0m\n\n" + else + printf "\033[031mESLint Failed\033[0m\n\n" + PASS=false + fi +fi + +# StyleLint +STAGED_CSS_FILES=$(git diff --cached --name-only --diff-filter=ACM ./src | grep ".s\?css$") + +if [[ "$STAGED_CSS_FILES" != "" ]]; then + echo "Linting CSS files" + + npx mate-scripts lint --styles $(join_by " " ${STAGED_CSS_FILES}) + + if [[ "$?" == 0 ]]; then + printf "\033[32mStyleLint Passed\033[0m\n\n" + else + printf "\033[031mStyleLint Failed\033[0m\n\n" + PASS=false + fi +fi + +if ! ${PASS}; then + printf "Pre-commits check failed. Fix problems above before commit.\n\n" + exit 1 +fi diff --git a/mate-scripts/package.json b/mate-scripts/package.json index 7ee8dde0..d1c854b5 100644 --- a/mate-scripts/package.json +++ b/mate-scripts/package.json @@ -1,6 +1,6 @@ { "name": "@mate-academy/scripts", - "version": "1.9.2", + "version": "1.9.3", "description": "Scripts to init, run, test, deploy Mate academy homework projects", "main": "bin/mateScripts.js", "scripts": {