[MediaWiki-commits] [Gerrit] mediawiki...MinervaNeue[master]: Add tooling for svg size checking

2017-07-14 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/365193 )

Change subject: Add tooling for svg size checking
..


Add tooling for svg size checking

also add pre-commit hook to ensure svgs are
compressed on commit

since extensions are accessible via http an .htaccess
is added to the dev-scripts folder for safety.

Bug: T170639
Change-Id: Ibcd5c29340d16c9cffc6e2eb90d33ee89b69874f
---
A dev-scripts/.htaccess
A dev-scripts/pre-commit
A dev-scripts/svg_check.sh
M package.json
4 files changed, 95 insertions(+), 2 deletions(-)

Approvals:
  jenkins-bot: Verified
  Jdlrobson: Looks good to me, approved



diff --git a/dev-scripts/.htaccess b/dev-scripts/.htaccess
new file mode 100644
index 000..3a42882
--- /dev/null
+++ b/dev-scripts/.htaccess
@@ -0,0 +1 @@
+Deny from all
diff --git a/dev-scripts/pre-commit b/dev-scripts/pre-commit
new file mode 100755
index 000..66d8854
--- /dev/null
+++ b/dev-scripts/pre-commit
@@ -0,0 +1,75 @@
+#!/usr/bin/env bash
+# Enable this pre-commit hook by running 'make installhooks'
+set -euo pipefail
+
+git-staged-files() {
+   git diff --cached -C -C -z --name-only --diff-filter=ACMRTUXB "$@"
+}
+
+git-is-staged() {
+   local diff=0
+   git-staged-files --quiet "$@" 2> /dev/null || diff=$?
+   [[ diff -eq 1 ]] || return 1
+}
+
+map() { IFS= read -rd $'\0' "$@"; }
+
+compress-png() {
+   git-staged-files \*.png|while map file; do
+   echo "Compressing $file"
+   optipng -q -o7 "$file" && advpng -z -4 "$file" && advdef -z -4 
"$file" | grep Output
+   git add "$file"
+   done
+}
+
+compress-svg() {
+   git-staged-files \*.svg|while map file; do
+   make nodecheck
+   echo "Compressing $file"
+   node_modules/.bin/svgo --config=.svgo.yml "$file"
+   git add "$file"
+   done
+}
+
+test-whitespace() { git diff --cached --check; }
+
+test-js() {
+   local err=0
+
+   make eslint || err+=1
+
+   if git-is-staged \*.js; then
+   make qunit || err+=1
+   fi
+
+   return $err
+}
+
+test-php() {
+   local err=0
+   if git-is-staged \*.php; then
+   make phplint || err+=1
+   fi
+
+   # todo: where is result set?
+   if git-is-staged 'includes/skins/*.php'; then
+   make validatehtml > $result || err+=1
+   fi
+
+   return $err
+}
+
+main() {
+   local err=0
+
+   compress-png
+   compress-svg
+
+   test-whitespace || err+=1
+   test-js || err+=1
+   test-php || err+=1
+
+   return $err
+}
+
+main "$@"
diff --git a/dev-scripts/svg_check.sh b/dev-scripts/svg_check.sh
new file mode 100755
index 000..3c7ef64
--- /dev/null
+++ b/dev-scripts/svg_check.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+found=0
+
+for svgfile in `find resources -type f -name "*.svg"`; do
+  outfile="$svgfile.tmp"
+  node_modules/.bin/svgo --config .svgo.yml -i $svgfile -o $outfile -q
+  if [ $(wc -c $svgfile | awk '{print $1}') -gt $(wc -c $outfile | awk '{print 
$1}') ]; then
+echo "File $svgfile is not compressed"
+found=$((found + 1))
+  fi
+  rm $outfile
+done
+
+if [ $found -gt 0 ]; then
+  echo "Found $found uncompressed SVG files. Please compress the files and 
re-submit the patch"
+  exit 1
+fi
\ No newline at end of file
diff --git a/package.json b/package.json
index 9ae3ac4..7184a14 100644
--- a/package.json
+++ b/package.json
@@ -1,13 +1,13 @@
 {
"private": true,
"scripts": {
-   "test": "grunt test"
+   "test": "grunt test && dev-scripts/svg_check.sh"
},
"dependencies": {
"svgo": ">=0.4.4"
},
"devDependencies": {
-   "eslint-config-wikimedia": "0.3.0",
+   "eslint-config-wikimedia": "0.4.0",
"grunt": "^1.0.1",
"grunt-banana-checker": "^0.5.0",
"grunt-contrib-watch": "^1.0.0",

-- 
To view, visit https://gerrit.wikimedia.org/r/365193
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ibcd5c29340d16c9cffc6e2eb90d33ee89b69874f
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/skins/MinervaNeue
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson 
Gerrit-Reviewer: Jdlrobson 
Gerrit-Reviewer: Niedzielski 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] mediawiki...MinervaNeue[master]: Add tooling for svg size checking

2017-07-13 Thread Jdlrobson (Code Review)
Jdlrobson has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/365193 )

Change subject: Add tooling for svg size checking
..

Add tooling for svg size checking

Bug: T170639
Change-Id: Ibcd5c29340d16c9cffc6e2eb90d33ee89b69874f
---
A dev_scripts/svg_check.sh
M package.json
2 files changed, 19 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/skins/MinervaNeue 
refs/changes/93/365193/1

diff --git a/dev_scripts/svg_check.sh b/dev_scripts/svg_check.sh
new file mode 100755
index 000..3c7ef64
--- /dev/null
+++ b/dev_scripts/svg_check.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+found=0
+
+for svgfile in `find resources -type f -name "*.svg"`; do
+  outfile="$svgfile.tmp"
+  node_modules/.bin/svgo --config .svgo.yml -i $svgfile -o $outfile -q
+  if [ $(wc -c $svgfile | awk '{print $1}') -gt $(wc -c $outfile | awk '{print 
$1}') ]; then
+echo "File $svgfile is not compressed"
+found=$((found + 1))
+  fi
+  rm $outfile
+done
+
+if [ $found -gt 0 ]; then
+  echo "Found $found uncompressed SVG files. Please compress the files and 
re-submit the patch"
+  exit 1
+fi
\ No newline at end of file
diff --git a/package.json b/package.json
index 9ae3ac4..7184a14 100644
--- a/package.json
+++ b/package.json
@@ -1,13 +1,13 @@
 {
"private": true,
"scripts": {
-   "test": "grunt test"
+   "test": "grunt test && dev-scripts/svg_check.sh"
},
"dependencies": {
"svgo": ">=0.4.4"
},
"devDependencies": {
-   "eslint-config-wikimedia": "0.3.0",
+   "eslint-config-wikimedia": "0.4.0",
"grunt": "^1.0.1",
"grunt-banana-checker": "^0.5.0",
"grunt-contrib-watch": "^1.0.0",

-- 
To view, visit https://gerrit.wikimedia.org/r/365193
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibcd5c29340d16c9cffc6e2eb90d33ee89b69874f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/skins/MinervaNeue
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits