forked from nathanchance/env
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtwrp
More file actions
executable file
·245 lines (174 loc) · 5.46 KB
/
twrp
File metadata and controls
executable file
·245 lines (174 loc) · 5.46 KB
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
#!/usr/bin/env bash
#
# TWRP compilation script
#
# Copyright (C) 2016-2017 Nathan Chancellor
#
# 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/>
################
# #
# PARAMETERS #
# #
################
# SOURCE OUR UNIVERSAL FUNCTIONS SCRIPT AND MAC CHECK
source common
while [[ $# -ge 1 ]]; do
PARAMS+="${1} "
case "${1}" in
# DEVICE TO BUILD TWRP FOR
"-d"|"--device")
shift
DEVICE=${1} ;;
# PUSH TO PUBLIC FOLDER INSTEAD OF PRIVATE
"-p"|"--public")
PUBLIC=true ;;
# SYNC TREE BEFORE BUILDING
"-s"|"--sync")
SYNC=true ;;
# CUSTOM DEVICE VERSION
"-v"|"--version")
shift
export TW_DEVICE_VERSION=${1} ;;
*)
report_error "Invalid parameter detected!" ;;
esac
shift
done
# BUILD ANGLER IF DEVICE IS NOT SET
[[ -z ${DEVICE} ]] && DEVICE=angler
###############
# #
# VARIABLES #
# #
###############
# DIRECTORIES
SOURCE_FOLDER=${HOME}/TWRP-6.0
OUT_FOLDER=${SOURCE_FOLDER}/out/target/product/${DEVICE}
if [[ ${PUBLIC} = true ]]; then
IMG_MOVE=${WEB_FOLDER}/downloads/twrp/${DEVICE}
else
IMG_MOVE=${WEB_FOLDER}/me/twrp/${DEVICE}
fi
VERSION=$(grep "TW_MAIN_VERSION_STR" ${SOURCE_FOLDER}/bootable/recovery/variables.h -m 1 | cut -d \" -f2)-${TW_DEVICE_VERSION}
# FILE NAMES
COMP_FILE=recovery.img
UPLD_FILE=twrp-${VERSION}-${DEVICE}-f2fs-$(date +%Y%m%d).img
FILE_FORMAT=twrp-*-${DEVICE}*
LOG_NAME=${LOG_FOLDER}/compilation/twrp/twrp-${VERSION}-${DEVICE}-f2fs-$(date +%Y%m%d-%H%M).log
##################
# #
# START SCRIPT #
# #
##################
clear && export EXPERIMENTAL_USE_JAVA8=true && START=$(date +%s)
#############
# REPO SYNC #
#############
cd ${SOURCE_FOLDER}
if [[ ${SYNC} = true ]]; then
header "SYNCING LATEST SOURCES"
repo sync --force-sync ${JOBS_FLAG}
fi
###########################
# SETUP BUILD ENVIRONMENT #
###########################
header "SETTING UP BUILD ENVIRONMENT"
# CHECK AND SEE IF WE ARE ON ARCH
# IF SO, ACTIVARE A VIRTUAL ENVIRONMENT FOR PROPER PYTHON SUPPORT
if [[ -f /etc/arch-release ]]; then
virtualenv2 ${HOME}/venv && source ${HOME}/venv/bin/activate
fi
source build/envsetup.sh
##################
# PREPARE DEVICE #
##################
header "PREPARING $(echo ${DEVICE} | awk '{print toupper($0)}')"
lunch omni_${DEVICE}-eng
############
# CLEAN UP #
############
header "CLEANING UP OUT DIRECTORY"
mka clobber
##################
# START BUILDING #
##################
header "MAKING TWRP"
NOW=$(date +"%Y-%m-%d-%S")
time mka recoveryimage | tee -a ${LOG_NAME}
####################
# IF TWRP COMPILED #
####################
# THERE WILL BE A FILE IN THE OUT FOLDER IN THE ABOVE FORMAT
if [[ -f ${OUT_FOLDER}/${COMP_FILE} ]]; then
# MAKE BUILD RESULT STRING REFLECT SUCCESSFUL COMPILATION
BUILD_RESULT_STRING="BUILD SUCCESSFUL"
SUCCESS=true
##################
# IMG_MOVE LOGIC #
##################
# MAKE IMG_MOVE IF IT DOESN'T EXIST
[[ ! -d "${IMG_MOVE}" ]] && mkdir -p "${IMG_MOVE}"/Old
####################
# MOVING TWRP FILE #
####################
mv "${IMG_MOVE}"/*.img* "${IMG_MOVE}"/Old
mv "${OUT_FOLDER}"/${COMP_FILE} "${IMG_MOVE}"/${UPLD_FILE}
###################
# GENERATE MD5SUM #
###################
md5sum "${IMG_MOVE}"/${UPLD_FILE} > "${IMG_MOVE}"/${UPLD_FILE}.md5sum
###################
# IF BUILD FAILED #
###################
else
BUILD_RESULT_STRING="BUILD FAILED"
SUCCESS=false
fi
##############
# SCRIPT END #
##############
# DEACTIVATE VIRTUALENV IF WE ARE ON ARCH
if [[ -f /etc/arch-release ]]; then
deactivate && rm -rf ${HOME}/venv
fi
END=$(date +%s)
header "${BUILD_RESULT_STRING}!"
######################
# ENDING INFORMATION #
######################
# IF THE BUILD WAS SUCCESSFUL, PRINT FILE LOCATION AND SIZE
if [[ ${SUCCESS} = true ]]; then
echo ${RED}"FILE LOCATION: $(web_link ${IMG_MOVE})"
echo "SIZE: $(du -h "${IMG_MOVE}"/${UPLD_FILE} | awk '{print $1}')"${RST}
fi
# PRINT THE TIME THE SCRIPT FINISHED
# AND HOW LONG IT TOOK REGARDLESS OF SUCCESS
echo ${RED}"TIME FINISHED: $(date +%D\ %r | awk '{print toupper($0)}')"
echo ${RED}"DURATION: $(format_time ${END} ${START})"${RST}; echo
##################
# LOG GENERATION #
##################
# DATE: BASH_SOURCE (PARAMETERS)
echo "\n$(date +"%m/%d/%Y %H:%M:%S"): ${BASH_SOURCE} ${DEVICE}" >> ${LOG}
# BUILD <SUCCESSFUL|FAILED> IN # MINUTES AND # SECONDS
echo "${BUILD_RESULT_STRING} IN $(format_time ${END} ${START})" >> ${LOG}
# ONLY ADD A LINE ABOUT FILE LOCATION IF SCRIPT COMPLETED SUCCESSFULLY
if [[ ${SUCCESS} = true ]]; then
# FILE LOCATION: <PATH>
echo "FILE LOCATION: $(web_link ${IMG_MOVE})" >> ${LOG}
fi
########################
# ALERT FOR SCRIPT END #
########################
echo "\a" && unset TW_DEVICE_VERSION && cd ${HOME}