]> git.wh0rd.org - chrome-ext/crftp.git/blob - dist/makedist.sh
init
[chrome-ext/crftp.git] / dist / makedist.sh
1 #!/bin/bash -e
2 # Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 case $1 in
7 -h|--help)
8 echo "Usage: $0 [rev]"
9 exit 0
10 ;;
11 esac
12
13 json_value() {
14 local key=$1
15 sed -n -r \
16 -e '/^[[:space:]]*"'"${key}"'"/s|.*:[[:space:]]*"([^"]*)",?$|\1|p' \
17 manifest.json
18 }
19
20 PN=$(json_value name | sed 's:[[:space:]/]:_:g' | tr '[:upper:]' '[:lower:]')
21 if [[ ${PN} == "__msg_name__" ]] ; then
22 PN=$(basename "$(pwd)")
23 fi
24 PV=$(json_value version)
25 rev=${1:-0}
26 PVR="${PV}.${rev}"
27 P="${PN}-${PVR}"
28
29 rm -rf "${P}"
30 mkdir "${P}"
31
32 while read line ; do
33 dir=$(dirname "${line}")
34 mkdir -p "${P}/${dir}"
35 if [[ ${line} == *.[np]exe ]]; then
36 make -C "${dir}" -j
37 fi
38 ln "${line}" "${P}/${line}"
39 done < <(sed 's:#.*::' manifest.files)
40 cp Makefile manifest.files manifest.json "${P}/"
41
42 make -C "${P}" -j {css,js}-min
43 while read line ; do
44 mv "${line}.min" "${line}"
45 done < <(find "${P}" -name '*.js' -o -name '*.css')
46 rm "${P}"/{manifest.files,Makefile}
47
48 sed -i \
49 -e '/"version"/s:"[^"]*",:"'${PVR}'",:' \
50 "${P}/manifest.json"
51
52 zip="${P}.zip"
53 rm -f "${zip}"
54 zip -r "${zip}" "${P}"
55 rm -rf "${P}"
56 du -b "${zip}"