-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.sh
More file actions
executable file
·78 lines (63 loc) · 2.23 KB
/
build.sh
File metadata and controls
executable file
·78 lines (63 loc) · 2.23 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
#!/bin/bash
MODULES=("custom-boot-animation" "late-bootanim" "revert-late-bootanim")
COMMON_DIR="common"
TMP_DIR="tmp_build_dir"
declare -A VARS
VARS=(
[version]="$(git describe --tags --abbrev=0 2>/dev/null | sed 's/^v//' || echo '1.0.0')"
[versionCode]="$(($(git tag | wc -l) > 0 ? $(git tag | wc -l) : 1))"
)
function replace() {
local search=$1
local replacement=$2
local target=$3
local OS_TYPE=$(uname)
if [ "$OS_TYPE" = "Darwin" ]; then
sed -i '' "s/${search}/${replacement}/g" "$target"
else
sed -i "s/${search}/${replacement}/g" "$target"
fi
}
mkdir -p "$TMP_DIR"
for MODULE in "${MODULES[@]}"; do
MODULE_DIR="$TMP_DIR/$MODULE"
COMMON_PROP="$COMMON_DIR/module.prop"
MODULE_PROP="$MODULE_DIR/module.prop"
cp -r "$MODULE" "$TMP_DIR/"
rsync -avq --exclude="module.prop" "$COMMON_DIR/" "$MODULE_DIR/"
if ! [[ $(tail -c1 "$MODULE_PROP" | wc -l) -gt 0 ]]; then
echo "" >> "$MODULE_PROP"
fi
while IFS= read -r pair || [ -n "$pair" ]; do
key=$(echo "$pair" | cut -d '=' -f 1)
value=$(echo "$pair" | cut -d '=' -f 2-)
if grep -q "^$key=" "$MODULE_PROP"; then
replace "^$key=.*" "$key=$value" "$MODULE_PROP"
else
echo "$pair" >> "$MODULE_PROP"
fi
done < "$COMMON_PROP"
while IFS= read -r line || [ -n "$line" ]; do
if [[ "$line" =~ \$\{([^}]+)\} ]]; then
var_name="${BASH_REMATCH[1]}"
if [[ -z "${VARS[$var_name]}" ]]; then
echo "Error: Variable \${$var_name} not found"
exit 1
fi
replace "\${$var_name}" "${VARS[$var_name]}" "$MODULE_PROP"
fi
done < "$MODULE_PROP"
MODULE_ID=$(grep '^id=' "$MODULE_PROP" | cut -d '=' -f 2)
MODULE_VERSION=$(grep '^version=' "$MODULE_PROP" | cut -d '=' -f 2)
if [ -z "$MODULE_ID" ] || [ -z "$MODULE_VERSION" ]; then
echo "Error: Module id or version not found in $MODULE_PROP"
continue
fi
ZIP_NAME="${MODULE_ID}-v${MODULE_VERSION}.zip"
cd "$MODULE_DIR" || exit
zip -rq "../../$ZIP_NAME" ./*
cd ../..
echo "Processed $MODULE: $MODULE_ID -> $ZIP_NAME"
done
rm -rf "$TMP_DIR"
echo "Cleaned up temporary build directory"