OLD | NEW |
1 #!/bin/sh | 1 #!/bin/sh |
2 | 2 |
3 # Copyright 2015 The Chromium Authors. All rights reserved. | 3 # Copyright 2015 The Chromium Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
| 7 set -eu |
| 8 |
7 THIS_DIR=$(dirname "$0") | 9 THIS_DIR=$(dirname "$0") |
8 | 10 |
9 OUT_DIR="$1" | 11 OUT_DIR="$1" |
10 | 12 |
11 if [[ ! "$1" ]]; then | 13 if [[ ! "$1" ]]; then |
12 echo "Usage: $(basename "$0") [output_dir]" | 14 echo "Usage: $(basename "$0") [output_dir]" |
13 exit 1 | 15 exit 1 |
14 fi | 16 fi |
15 | 17 |
16 if [[ -e "$1" && ! -d "$1" ]]; then | 18 if [[ -e "$1" && ! -d "$1" ]]; then |
17 echo "Output directory \`$1' exists but is not a directory." | 19 echo "Output directory \`$1' exists but is not a directory." |
18 exit 1 | 20 exit 1 |
19 fi | 21 fi |
20 if [[ ! -d "$1" ]]; then | 22 if [[ ! -d "$1" ]]; then |
21 mkdir -p "$1" | 23 mkdir -p "$1" |
22 fi | 24 fi |
23 | 25 |
24 generate_test_data() { | 26 generate_test_data() { |
| 27 # `hdiutil convert` cannot overwrite files, so remove items in the output |
| 28 # directory. |
| 29 rm -f "${OUT_DIR}"/* |
| 30 |
25 # HFS Raw Images ############################################################# | 31 # HFS Raw Images ############################################################# |
26 | 32 |
27 MAKE_HFS="${THIS_DIR}/make_hfs.sh" | 33 MAKE_HFS="${THIS_DIR}/make_hfs.sh" |
28 "${MAKE_HFS}" HFS+ 1024 "${OUT_DIR}/hfs_plus.img" | 34 "${MAKE_HFS}" HFS+ 1024 "${OUT_DIR}/hfs_plus.img" |
29 "${MAKE_HFS}" hfsx $((8 * 1024)) "${OUT_DIR}/hfsx_case_sensitive.img" | 35 "${MAKE_HFS}" hfsx $((8 * 1024)) "${OUT_DIR}/hfsx_case_sensitive.img" |
30 | 36 |
31 # DMG Files ################################################################## | 37 # DMG Files ################################################################## |
32 | 38 |
33 DMG_SOURCE=$(mktemp -d -t dmg_generate_test_data.XXXXXX) | 39 DMG_SOURCE=$(mktemp -d -t dmg_generate_test_data.XXXXXX) |
34 echo "This is a test DMG file. It has been generated from " \ | 40 echo "This is a test DMG file. It has been generated from " \ |
35 "chrome/test/data/safe_browsing/dmg/generate_test_data.sh" \ | 41 "chrome/test/data/safe_browsing/dmg/generate_test_data.sh" \ |
36 > "${DMG_SOURCE}/README.txt" | 42 > "${DMG_SOURCE}/README.txt" |
37 dd if=/dev/urandom of="${DMG_SOURCE}/random" bs=512 count=4 | 43 dd if=/dev/urandom of="${DMG_SOURCE}/random" bs=512 count=4 &> /dev/null |
38 | 44 |
39 DMG_TEMPLATE_FORMAT="UDRO" | 45 DMG_TEMPLATE_FORMAT="UDRO" |
40 DMG_FORMATS="UDRW UDCO UDZO UDBZ UFBI UDTO UDSP" | 46 DMG_FORMATS="UDRW UDCO UDZO UDBZ UFBI UDTO UDSP" |
41 DMG_LAYOUTS="SPUD GPTSPUD NONE" | 47 DMG_LAYOUTS="SPUD GPTSPUD NONE" |
42 | 48 |
43 # First create uncompressed template DMGs in the three partition layouts. | 49 # First create uncompressed template DMGs in the three partition layouts. |
44 for layout in ${DMG_LAYOUTS}; do | 50 for layout in ${DMG_LAYOUTS}; do |
45 DMG_NAME="dmg_${DMG_TEMPLATE_FORMAT}_${layout}" | 51 DMG_NAME="dmg_${DMG_TEMPLATE_FORMAT}_${layout}" |
46 hdiutil create -srcfolder "${DMG_SOURCE}" \ | 52 hdiutil create -srcfolder "${DMG_SOURCE}" \ |
47 -format "${DMG_TEMPLATE_FORMAT}" -layout "${layout}" \ | 53 -format "${DMG_TEMPLATE_FORMAT}" -layout "${layout}" \ |
48 -volname "${DMG_NAME}" \ | 54 -volname "${DMG_NAME}" \ |
49 -ov "${OUT_DIR}/${DMG_NAME}" | 55 "${OUT_DIR}/${DMG_NAME}" |
50 done | 56 done |
51 | 57 |
52 # Convert each template into the different compression format. | 58 # Convert each template into the different compression format. |
53 for format in ${DMG_FORMATS}; do | 59 for format in ${DMG_FORMATS}; do |
54 for layout in ${DMG_LAYOUTS}; do | 60 for layout in ${DMG_LAYOUTS}; do |
55 TEMPLATE_NAME="dmg_${DMG_TEMPLATE_FORMAT}_${layout}.dmg" | 61 TEMPLATE_NAME="dmg_${DMG_TEMPLATE_FORMAT}_${layout}.dmg" |
56 DMG_NAME="dmg_${format}_${layout}" | 62 DMG_NAME="dmg_${format}_${layout}" |
57 hdiutil convert "${OUT_DIR}/${TEMPLATE_NAME}" \ | 63 hdiutil convert "${OUT_DIR}/${TEMPLATE_NAME}" \ |
58 -format "${format}" -o "${OUT_DIR}/${DMG_NAME}" | 64 -format "${format}" -o "${OUT_DIR}/${DMG_NAME}" |
59 done | 65 done |
(...skipping 13 matching lines...) Expand all Loading... |
73 mkdir "${DMG_SOURCE}/.hidden" | 79 mkdir "${DMG_SOURCE}/.hidden" |
74 cp "${THIS_DIR}/../mach_o/lib64.dylib" "${DMG_SOURCE}/.hidden/" | 80 cp "${THIS_DIR}/../mach_o/lib64.dylib" "${DMG_SOURCE}/.hidden/" |
75 | 81 |
76 hdiutil create -srcfolder "${DMG_SOURCE}" \ | 82 hdiutil create -srcfolder "${DMG_SOURCE}" \ |
77 -format UDZO -layout SPUD -volname "Mach-O in DMG" -ov \ | 83 -format UDZO -layout SPUD -volname "Mach-O in DMG" -ov \ |
78 "${OUT_DIR}/mach_o_in_dmg" | 84 "${OUT_DIR}/mach_o_in_dmg" |
79 | 85 |
80 rm -rf "${DMG_SOURCE}" | 86 rm -rf "${DMG_SOURCE}" |
81 } | 87 } |
82 | 88 |
83 # Silence any log output. | 89 # Silence any stdout, but keep stderr. |
84 generate_test_data &> /dev/null | 90 generate_test_data > /dev/null |
OLD | NEW |