-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconvert-assets.sh
executable file
·71 lines (53 loc) · 1.77 KB
/
convert-assets.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash
#
# Argument verification
#
if [[ $# < 2 ]]; then
echo "Usage:" >&2
echo " convert-assets /assets /output" >&2
exit 1
fi
ASSETS_DIR="$PWD/$1"
OUTPUT_DIR="$PWD/$2"
if [[ ! -d "$ASSETS_DIR" ]]; then
echo "Assets directory $ASSETS_DIR does not exist" >&2
exit 1
fi
if [[ ! -d "$OUTPUT_DIR" ]]; then
echo "Output directory $OUTPUT_DIR does not exist" >&2
exit 1
fi
#
# Conversion logic
#
CONVERT_PDF="gs -q -dNOPAUSE -dBATCH -sDEVICE=pngalpha -dEPSCrop -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dDownScaleFactor=3"
IMAGE_MODULE="$OUTPUT_DIR/Images.js"
IMAGE_OUTPUT_DIR="$OUTPUT_DIR/img"
echo "/* This module is automatically generated by convert-assets.sh */" > $IMAGE_MODULE
echo "/* https://github.com/isair/react-native-smart-assets */" >> $IMAGE_MODULE
echo "export default {" >> $IMAGE_MODULE
rm -rf "$IMAGE_OUTPUT_DIR"
mkdir "$IMAGE_OUTPUT_DIR"
for FILE_PATH in $ASSETS_DIR/*.pdf; do
FILE="${FILE_PATH##*/}"
FILE_NAME="${FILE%.*}"
( \
$CONVERT_PDF -r216 -sOutputFile="$IMAGE_OUTPUT_DIR/$FILE_NAME".png "$FILE_PATH" ;\
$CONVERT_PDF -r432 -sOutputFile="$IMAGE_OUTPUT_DIR/$FILE_NAME"@2x.png "$FILE_PATH" ;\
$CONVERT_PDF -r648 -sOutputFile="$IMAGE_OUTPUT_DIR/$FILE_NAME"@3x.png "$FILE_PATH" \
) || true
if [[ "$FILE_NAME" != "*" ]]; then
# TODO: $PROPERTY_NAME from $FILE_NAME. Converting it to camel case if
# necessary.
echo " $FILE_NAME: require('./img/$FILE_NAME.png')," >> $IMAGE_MODULE
fi
done
for FILE_PATH in $ASSETS_DIR/*.{jpg,jpeg,png,gif}; do
FILE="${FILE_PATH##*/}"
FILE_NAME="${FILE%.*}"
cp "$FILE_PATH" "$IMAGE_OUTPUT_DIR/$FILE" 2>/dev/null
if [[ ("$FILE_NAME" != "*") && (! "$FILE_NAME" =~ "@") ]]; then
echo " $FILE_NAME: require('./img/$FILE')," >> $IMAGE_MODULE
fi
done
echo "};" >> $IMAGE_MODULE