update config_update

This commit is contained in:
j-hc 2024-11-16 20:18:24 +03:00
parent 453c404c3c
commit 4bdc6de231
No known key found for this signature in database
GPG Key ID: CDF97F1DBFE904CD
3 changed files with 30 additions and 26 deletions

View File

@ -31,7 +31,7 @@ jobs:
if git checkout origin/update build.md; then if git checkout origin/update build.md; then
UPDATE_CFG=$(./build.sh config.toml --config-update) UPDATE_CFG=$(./build.sh config.toml --config-update)
if [ "$UPDATE_CFG" ]; then if [ "$UPDATE_CFG" ]; then
echo "$UPDATE_CFG" > config.toml echo "$UPDATE_CFG" > config.json
fi fi
fi fi
@ -45,7 +45,7 @@ jobs:
echo "NEXT_VER_CODE=$((TAG + 1))" >> $GITHUB_OUTPUT echo "NEXT_VER_CODE=$((TAG + 1))" >> $GITHUB_OUTPUT
- name: Build modules/APKs - name: Build modules/APKs
run: ./build.sh config.toml run: if [ -f "config.json" ]; then ./build.sh config.json; else ./build.sh config.toml; fi
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: $GITHUB_REPOSITORY GITHUB_REPOSITORY: $GITHUB_REPOSITORY

View File

@ -10,7 +10,7 @@ if [ "${1-}" = "clean" ]; then
fi fi
source utils.sh source utils.sh
get_prebuilts set_prebuilts
vtf() { if ! isoneof "${1}" "true" "false"; then abort "ERROR: '${1}' is not a valid option for '${2}': only true or false is allowed"; fi; } vtf() { if ! isoneof "${1}" "true" "false"; then abort "ERROR: '${1}' is not a valid option for '${2}': only true or false is allowed"; fi; }
@ -22,7 +22,6 @@ if ! PARALLEL_JOBS=$(toml_get "$main_config_t" parallel-jobs); then
if [ "$OS" = Android ]; then PARALLEL_JOBS=1; else PARALLEL_JOBS=$(nproc); fi if [ "$OS" = Android ]; then PARALLEL_JOBS=1; else PARALLEL_JOBS=$(nproc); fi
fi fi
REMOVE_RV_INTEGRATIONS_CHECKS=$(toml_get "$main_config_t" remove-rv-integrations-checks) || REMOVE_RV_INTEGRATIONS_CHECKS="true" REMOVE_RV_INTEGRATIONS_CHECKS=$(toml_get "$main_config_t" remove-rv-integrations-checks) || REMOVE_RV_INTEGRATIONS_CHECKS="true"
DEF_PATCHES_VER=$(toml_get "$main_config_t" patches-version) || DEF_PATCHES_VER="latest" DEF_PATCHES_VER=$(toml_get "$main_config_t" patches-version) || DEF_PATCHES_VER="latest"
DEF_CLI_VER=$(toml_get "$main_config_t" cli-version) || DEF_CLI_VER="latest" DEF_CLI_VER=$(toml_get "$main_config_t" cli-version) || DEF_CLI_VER="latest"
DEF_PATCHES_SRC=$(toml_get "$main_config_t" patches-source) || DEF_PATCHES_SRC="ReVanced/revanced-patches" DEF_PATCHES_SRC=$(toml_get "$main_config_t" patches-source) || DEF_PATCHES_SRC="ReVanced/revanced-patches"
@ -41,20 +40,23 @@ if [ "$ENABLE_MAGISK_UPDATE" = true ] && [ -z "${GITHUB_REPOSITORY-}" ]; then
pr "You are building locally. Magisk updates will not be enabled." pr "You are building locally. Magisk updates will not be enabled."
ENABLE_MAGISK_UPDATE=false ENABLE_MAGISK_UPDATE=false
fi fi
# -----------------
if ((COMPRESSION_LEVEL > 9)) || ((COMPRESSION_LEVEL < 0)); then abort "compression-level must be within 0-9"; fi if ((COMPRESSION_LEVEL > 9)) || ((COMPRESSION_LEVEL < 0)); then abort "compression-level must be within 0-9"; fi
# -- check_deps --
jq --version >/dev/null || abort "\`jq\` is not installed. install it with 'apt install jq' or equivalent" jq --version >/dev/null || abort "\`jq\` is not installed. install it with 'apt install jq' or equivalent"
java --version >/dev/null || abort "\`openjdk 17\` is not installed. install it with 'apt install openjdk-17-jre' or equivalent" java --version >/dev/null || abort "\`openjdk 17\` is not installed. install it with 'apt install openjdk-17-jre' or equivalent"
zip --version >/dev/null || abort "\`zip\` is not installed. install it with 'apt install zip' or equivalent" zip --version >/dev/null || abort "\`zip\` is not installed. install it with 'apt install zip' or equivalent"
# ----------------
rm -rf revanced-magisk/bin/*/tmp.* rm -rf revanced-magisk/bin/*/tmp.*
if [ "$(echo "$TEMP_DIR"/*-rv/changelog.md)" ]; then if [ "$(echo "$TEMP_DIR"/*-rv/changelog.md)" ]; then
: >"$TEMP_DIR"/*-rv/changelog.md || : : >"$TEMP_DIR"/*-rv/changelog.md || :
fi fi
mkdir -p ${MODULE_TEMPLATE_DIR}/bin/arm64 ${MODULE_TEMPLATE_DIR}/bin/arm ${MODULE_TEMPLATE_DIR}/bin/x86 ${MODULE_TEMPLATE_DIR}/bin/x64
gh_dl "${MODULE_TEMPLATE_DIR}/bin/arm64/cmpr" "https://github.com/j-hc/cmpr/releases/latest/download/cmpr-arm64-v8a"
gh_dl "${MODULE_TEMPLATE_DIR}/bin/arm/cmpr" "https://github.com/j-hc/cmpr/releases/latest/download/cmpr-armeabi-v7a"
gh_dl "${MODULE_TEMPLATE_DIR}/bin/x86/cmpr" "https://github.com/j-hc/cmpr/releases/latest/download/cmpr-x86"
gh_dl "${MODULE_TEMPLATE_DIR}/bin/x64/cmpr" "https://github.com/j-hc/cmpr/releases/latest/download/cmpr-x86_64"
declare -A cliriplib declare -A cliriplib
idx=0 idx=0
for table_name in $(toml_get_table_names); do for table_name in $(toml_get_table_names); do

View File

@ -10,7 +10,14 @@ if [ "${GITHUB_TOKEN-}" ]; then GH_HEADER="Authorization: token ${GITHUB_TOKEN}"
NEXT_VER_CODE=${NEXT_VER_CODE:-$(date +'%Y%m%d')} NEXT_VER_CODE=${NEXT_VER_CODE:-$(date +'%Y%m%d')}
OS=$(uname -o) OS=$(uname -o)
toml_prep() { __TOML__=$($TOML --output json --file "$1" .); } toml_prep() {
if [ ! -f "$1" ]; then return 1; fi
if [ "${1##*.}" == toml ]; then
__TOML__=$($TOML --output json --file "$1" .)
elif [ "${1##*.}" == json ]; then
__TOML__=$(cat "$1")
else abort "config extension not supported"; fi
}
toml_get_table_names() { jq -r -e 'to_entries[] | select(.value | type == "object") | .key' <<<"$__TOML__"; } toml_get_table_names() { jq -r -e 'to_entries[] | select(.value | type == "object") | .key' <<<"$__TOML__"; }
toml_get_table_main() { jq -r -e 'to_entries | map(select(.value | type != "object")) | from_entries' <<<"$__TOML__"; } toml_get_table_main() { jq -r -e 'to_entries | map(select(.value | type != "object")) | from_entries' <<<"$__TOML__"; }
toml_get_table() { jq -r -e ".\"${1}\"" <<<"$__TOML__"; } toml_get_table() { jq -r -e ".\"${1}\"" <<<"$__TOML__"; }
@ -110,7 +117,7 @@ get_rv_prebuilts() {
echo echo
} }
get_prebuilts() { set_prebuilts() {
APKSIGNER="${BIN_DIR}/apksigner.jar" APKSIGNER="${BIN_DIR}/apksigner.jar"
if [ "$OS" = Android ]; then if [ "$OS" = Android ]; then
local arch local arch
@ -122,21 +129,13 @@ get_prebuilts() {
HTMLQ="${BIN_DIR}/htmlq/htmlq-x86_64" HTMLQ="${BIN_DIR}/htmlq/htmlq-x86_64"
TOML="${BIN_DIR}/toml/tq-x86_64" TOML="${BIN_DIR}/toml/tq-x86_64"
fi fi
mkdir -p ${MODULE_TEMPLATE_DIR}/bin/arm64 ${MODULE_TEMPLATE_DIR}/bin/arm ${MODULE_TEMPLATE_DIR}/bin/x86 ${MODULE_TEMPLATE_DIR}/bin/x64
gh_dl "${MODULE_TEMPLATE_DIR}/bin/arm64/cmpr" "https://github.com/j-hc/cmpr/releases/latest/download/cmpr-arm64-v8a"
gh_dl "${MODULE_TEMPLATE_DIR}/bin/arm/cmpr" "https://github.com/j-hc/cmpr/releases/latest/download/cmpr-armeabi-v7a"
gh_dl "${MODULE_TEMPLATE_DIR}/bin/x86/cmpr" "https://github.com/j-hc/cmpr/releases/latest/download/cmpr-x86"
gh_dl "${MODULE_TEMPLATE_DIR}/bin/x64/cmpr" "https://github.com/j-hc/cmpr/releases/latest/download/cmpr-x86_64"
} }
config_update() { config_update() {
if [ ! -f build.md ]; then abort "build.md not available"; fi if [ ! -f build.md ]; then abort "build.md not available"; fi
declare -A sources declare -A sources
: >"$TEMP_DIR"/skipped : >"$TEMP_DIR"/skipped
local conf="" local upped=()
# shellcheck disable=SC2154
conf+=$(sed '1d' <<<"$main_config_t")
conf+=$'\n'
local prcfg=false local prcfg=false
for table_name in $(toml_get_table_names); do for table_name in $(toml_get_table_names); do
if [ -z "$table_name" ]; then continue; fi if [ -z "$table_name" ]; then continue; fi
@ -146,10 +145,7 @@ config_update() {
PATCHES_SRC=$(toml_get "$t" patches-source) || PATCHES_SRC=$DEF_PATCHES_SRC PATCHES_SRC=$(toml_get "$t" patches-source) || PATCHES_SRC=$DEF_PATCHES_SRC
PATCHES_VER=$(toml_get "$t" patches-version) || PATCHES_VER=$DEF_PATCHES_VER PATCHES_VER=$(toml_get "$t" patches-version) || PATCHES_VER=$DEF_PATCHES_VER
if [[ -v sources["$PATCHES_SRC/$PATCHES_VER"] ]]; then if [[ -v sources["$PATCHES_SRC/$PATCHES_VER"] ]]; then
if [ "${sources["$PATCHES_SRC/$PATCHES_VER"]}" = 1 ]; then if [ "${sources["$PATCHES_SRC/$PATCHES_VER"]}" = 1 ]; then upped+=("$table_name"); fi
conf+="$t"
conf+=$'\n'
fi
else else
sources["$PATCHES_SRC/$PATCHES_VER"]=0 sources["$PATCHES_SRC/$PATCHES_VER"]=0
local rv_rel="https://api.github.com/repos/${PATCHES_SRC}/releases" local rv_rel="https://api.github.com/repos/${PATCHES_SRC}/releases"
@ -167,15 +163,21 @@ config_update() {
if ! OP=$(grep "^Patches: ${PATCHES_SRC%%/*}/" build.md | grep "$last_patches"); then if ! OP=$(grep "^Patches: ${PATCHES_SRC%%/*}/" build.md | grep "$last_patches"); then
sources["$PATCHES_SRC/$PATCHES_VER"]=1 sources["$PATCHES_SRC/$PATCHES_VER"]=1
prcfg=true prcfg=true
conf+="$t" upped+=("$table_name")
conf+=$'\n'
else else
echo "$OP" >>"$TEMP_DIR"/skipped echo "$OP" >>"$TEMP_DIR"/skipped
fi fi
fi fi
fi fi
done done
if [ "$prcfg" = true ]; then echo "$conf"; fi if [ "$prcfg" = true ]; then
local query=""
for table in "${upped[@]}"; do
if [ -n "$query" ]; then query+=" or "; fi
query+=".key == \"$table\""
done
jq "to_entries | map(select(${query} or (.value | type != \"object\"))) | from_entries" <<<"$__TOML__"
fi
} }
_req() { _req() {