summaryrefslogtreecommitdiffstats
path: root/payloads/external/tint/tintify_core.sh
blob: 0cd659912a57d8db5b019c84a92bbda7175cbd4a (plain)
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
#!/bin/sh
#
# tintify_core.sh adds the TINT-specific footer/header to the core,
# such as the properties of current TINT version including its checksum.
#
# Copyright (C) 2019 Mike Banon <mikebdp2@gmail.com>
#
################################################################################
#
# USAGE:
#      	./tintify_core.sh <corescript> <tintified> \
# 			<TINT_BASE_URL> <TINT_ARCHIVE> <TINT_DIR> <TINT_SHA1SUM>
# where
#       corescript - path to input core script
#       tintified  - path to output tint script
#
################################################################################

corescript="$1"
tintified="$2"

#
# TINT-specific header
#

#
# Insert the properties of the current TINT version
#

echo "#!/bin/sh" > "$tintified"
echo "TINT_BASE_URL=${3}" >> "$tintified"
echo "TINT_ARCHIVE=${4}" >> "$tintified"
echo "TINT_ARCHIVE_LINK=${3}/${4}" >> "$tintified"
echo "TINT_DIR=${5}" >> "$tintified"
echo "TINT_SHA1SUM=${6}" >> "$tintified"
echo "USE_COREBOOT_MIRROR=0" >> "$tintified"

#
# Add the replace_plus_with_minus() function - needed to fix the version number
#

echo "replace_plus_with_minus() {" >> "$tintified"
echo "for x in *\"+\"*; do" >> "$tintified"
echo "y=\$(printf %sa \"\$x\" | tr \"+\" \"-\")" >> "$tintified"
echo "mv -- \"\$x\" \"\${y%a}\"" >> "$tintified"
echo "done" >> "$tintified"
echo "}" >> "$tintified"

#
# Add the prepare_TINT() function, it will remove the unneeded debian directory
# as well as typedefs.h and old Makefile to significantly reduce the patch size
#

echo "prepare_TINT() {" >> "$tintified"
# echo "replace_plus_with_minus" >> "$tintified"
echo "if [ ! -z ./\${TINT_DIR} ] && [ -e ./\${TINT_DIR}/debian ] ; then" >> "$tintified"
echo "rm -rf ./\${TINT_DIR}/debian ./\${TINT_DIR}/typedefs.h ./\${TINT_DIR}/Makefile;" >> "$tintified"
echo "touch ./\${TINT_DIR}/Makefile;" >> "$tintified"
echo "fi" >> "$tintified"
echo "}" >> "$tintified"

#
# Importing the core script
#

cat "$corescript" >> "$tintified"

#
# download() function adjustments - became necessary after a version number fix
#

sed -i -e "/download() {/a package=\$1\narchive_link=\"\$(eval echo \\\\\$\$package\"_ARCHIVE_LINK\")\"" "$tintified"
sed -i -e "s/downloading from \$archive/&_link/g" "$tintified"
sed -i -e "s/\(download_showing_percentage \"\$archive\)./\1_link\"/g" "$tintified"

#
# TINT-specific footer
#

echo "if [ ! -d tint ] ; then" >> "$tintified"

echo "printf \"Downloading and verifying TINT tarball ... \\n\"" >> "$tintified"
echo "download TINT || exit \"\$?\"" >> "$tintified"
echo "verify_hash TINT \${TINT_SHA1SUM} || exit \"\$?\"" >> "$tintified"
echo "printf \"Downloaded TINT tarball ... \${green}ok\${NC}\\n\"" >> "$tintified"

echo "printf \"Unpacking and patching TINT... \\n\"" >> "$tintified"
echo "unpack_and_patch TINT || exit 1" >> "$tintified"
echo "printf \"Unpacked and patched TINT... \${green}ok\${NC}\\n\"" >> "$tintified"

echo "mv ./\${TINT_DIR} ./tint" >> "$tintified"
echo "fi" >> "$tintified"

echo "printf \"Building TINT ... \\n\"" >> "$tintified"
echo "make -C ./tint" >> "$tintified"
echo "printf \"TINT built ... \${green}ok\${NC}\\n\"" >> "$tintified"

chmod +x "$tintified"

#