-
-
Notifications
You must be signed in to change notification settings - Fork 386
/
render.sh
executable file
·100 lines (84 loc) · 3.53 KB
/
render.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/usr/bin/env bash
# App Privacy Policy Generator: A simple web app to generate a generic
# privacy policy for your Android/iOS apps
#
# Copyright 2017-Present Nishant Srivastava
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Calculate the size before minification in bytes
size_before=$(du -s public | cut -f1)
echo ""
echo " 👨🏻💻 Starting..."
echo ""
# Using pug-cli to render from pug to html
# Specifically a fork
# - NPM: https://www.npmjs.com/package/@tokilabs/pug3-cli
# - Github: https://github.com/tokilabs/pug3-cli
# because the original is not maintained anymore!
# Install pug-cli: npm install -g @tokilabs/pug3-cli
pug3 src/index.pug --out public --silent
echo " ✅ STEP 1: RENDER PUG > HTML"
echo ""
# Using sass-cli to render from sass to css
sass src/sass/style.sass public/css/style.css
echo " ✅ STEP 2: RENDER SASS > CSS"
echo ""
# Using js-yaml to convert yaml to json
JS_FILE="src/js/thirdpartyservices.js"
YAML_DIR="src/includes/yaml"
echo "/*
App Privacy Policy Generator: A simple web app to generate a generic
privacy policy for your Android/iOS apps
Copyright 2017-Present Nishant Srivastava
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
" >$JS_FILE
TEMP_JSON_FILE="$YAML_DIR/thirdpartyservices.json"
touch $TEMP_JSON_FILE
js-yaml $YAML_DIR/thirdpartyservices.yml >$TEMP_JSON_FILE
JSON_DATA=$(cat $TEMP_JSON_FILE)
echo "var thirdPartyServicesJsonArray = $JSON_DATA" >>$JS_FILE
rm $TEMP_JSON_FILE
echo " ✅ STEP 3: RENDER YAML > JSON"
echo ""
uglifycss public/css/style.css --output public/css/style.min.css
rm public/css/style.css public/css/style.css.map
echo " ✅ STEP 4: Minify CSS"
echo ""
purgecss --css public/css/style.min.css \
--content public/index.html \
--output public/css/style.min.css
echo " ✅ STEP 5: Cleanup unused CSS"
echo ""
uglifyjs src/js/thirdpartyservices.js --output public/js/thirdpartyservices.min.js
uglifyjs src/js/main.js --output public/js/main.min.js
uglifyjs src/js/utils.js --output public/js/utils.min.js
uglifyjs src/js/flycricket.js --output public/js/flycricket.min.js
echo " ✅ STEP 6: Minify JS"
# Calculate the size after minification in bytes
size_after=$(du -s public | cut -f1)
# Calculate the size difference
size_diff=$((size_before - size_after))
# Display the size difference in a nice message
echo ""
echo " 📈 STEP 7: Size difference of optimized website: $size_diff bytes"