]> git.wh0rd.org - chrome-ext/clearhistory-advance-fork.git/blobdiff - dist/pngcrush.sh
update dist helpers
[chrome-ext/clearhistory-advance-fork.git] / dist / pngcrush.sh
diff --git a/dist/pngcrush.sh b/dist/pngcrush.sh
new file mode 100755 (executable)
index 0000000..f302a2e
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/bash -xe
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+size()
+{
+  stat -c %s "$@"
+}
+
+do_apngopt()
+{
+  local png new
+
+  for png in "$@"; do
+    new="${png}.new"
+    apngopt "${png}" "${new}"
+    if [[ $(size "${png}") -gt $(size "${new}") ]]; then
+      mv "${new}" "${png}"
+    else
+      rm "${new}"
+    fi
+  done
+}
+
+do_pngcrush()
+{
+  local png new
+
+  pngcrush -e .png.new "$@"
+  for png in "$@"; do
+    new="${png}.new"
+    mv "${new}" "${png}"
+  done
+}
+
+main()
+{
+  if [ $# -eq 0 ]; then
+    set -- $(find -name '*.png')
+  fi
+
+  if type -P apngopt >/dev/null; then
+    # apngopt likes to corrupt images.
+    : do_apngopt "$@"
+  elif type -P pngcrush >/dev/null; then
+    do_pngcrush "$@"
+  else
+    echo "error: could not find apngopt or pngcrush"
+    exit 1
+  fi
+}
+main "$@"