check: css-min js-min
dist:
- ./makedist.sh
+ ./dist/makedist.sh
.PHONY: all clean check css-min dist js-min
--- /dev/null
+#!/bin/bash -e
+# 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.
+
+case $1 in
+-h|--help)
+ echo "Usage: $0 [rev]"
+ exit 0
+ ;;
+esac
+
+json_value() {
+ local key=$1
+ sed -n -r \
+ -e '/^[[:space:]]*"'"${key}"'"/s|.*:[[:space:]]*"([^"]*)",?$|\1|p' \
+ manifest.json
+}
+
+PN=$(json_value name | sed 's:[[:space:]/]:_:g' | tr '[:upper:]' '[:lower:]')
+if [[ ${PN} == "__msg_name__" ]] ; then
+ PN=$(basename "$(pwd)")
+fi
+PV=$(json_value version)
+rev=${1:-0}
+PVR="${PV}.${rev}"
+P="${PN}-${PVR}"
+
+rm -rf "${P}"
+mkdir "${P}"
+
+while read line ; do
+ [[ ${line} == */* ]] && mkdir -p "${P}/${line%/*}"
+ ln "${line}" "${P}/${line}"
+done < <(sed 's:#.*::' manifest.files)
+cp Makefile manifest.files manifest.json "${P}/"
+
+make -C "${P}" -j {css,js}-min
+while read line ; do
+ mv "${line}.min" "${line}"
+done < <(find "${P}" -name '*.js' -o -name '*.css')
+rm "${P}"/{manifest.files,Makefile}
+
+sed -i \
+ -e '/"version"/s:"[^"]*",:"'${PVR}'",:' \
+ "${P}/manifest.json"
+
+zip="${P}.zip"
+rm -f "${zip}"
+zip -r "${zip}" "${P}"
+rm -rf "${P}"
+du -b "${zip}"
--- /dev/null
+#!/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 "$@"
+++ /dev/null
-#!/bin/bash -e
-# 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.
-
-case $1 in
--h|--help)
- echo "Usage: $0 [rev]"
- exit 0
- ;;
-esac
-
-json_value() {
- local key=$1
- sed -n -r \
- -e '/^[[:space:]]*"'"${key}"'"/s|.*:[[:space:]]*"([^"]*)",?$|\1|p' \
- manifest.json
-}
-
-PN=$(json_value name | sed 's:[[:space:]]:_:g' | tr '[:upper:]' '[:lower:]')
-if [[ ${PN} == "__msg_name__" ]] ; then
- PN=$(basename "$(pwd)")
-fi
-PV=$(json_value version)
-rev=${1:-0}
-PVR="${PV}.${rev}"
-P="${PN}-${PVR}"
-
-rm -rf "${P}"
-mkdir "${P}"
-
-while read line ; do
- [[ ${line} == */* ]] && mkdir -p "${P}/${line%/*}"
- ln "${line}" "${P}/${line}"
-done < <(sed 's:#.*::' manifest.files)
-cp Makefile manifest.files manifest.json "${P}/"
-
-make -C "${P}" -j {css,js}-min
-while read line ; do
- mv "${line}.min" "${line}"
-done < <(find "${P}" -name '*.js' -o -name '*.css')
-rm "${P}"/{manifest.files,Makefile}
-
-sed -i \
- -e '/"version"/s:"[^"]*",:"'${PVR}'",:' \
- "${P}/manifest.json"
-
-zip="${P}.zip"
-rm -f "${zip}"
-zip -r "${zip}" "${P}"
-rm -rf "${P}"
-du -b "${zip}"