Browse Source

Refactor config writing append only if config doesn't exist

jimsterino98 1 month ago
parent
commit
6165aaaf7c
1 changed files with 28 additions and 15 deletions
  1. 28 15
      .github/actions/configs/action.yml

+ 28 - 15
.github/actions/configs/action.yml

@@ -46,21 +46,34 @@ runs:
      if [ -n "$target_config" ]; then
       echo "Nuking Samsung Knox/Root protection in: $target_config"
          
-     cat >> "$target_config" << 'EOF'
-     CONFIG_UH=n
-     CONFIG_UH_RKP=n
-     CONFIG_UH_LKMAUTH=n
-     CONFIG_UH_LKM_BLOCK=n
-     CONFIG_RKP_CFP_JOPP=n
-     CONFIG_RKP_CFP_ROPP=n
-     CONFIG_RKP_CFP=n
-     CONFIG_SECURITY_DEFEX=n
-     CONFIG_PROCA=n
-     CONFIG_FIVE=n
-     CONFIG_RKP=n
-     CONFIG_KDP_NS=n
-     CONFIG_KDP=n
-     EOF
+     config=(
+     "CONFIG_UH=n"
+     "CONFIG_UH_RKP=n"
+     "CONFIG_UH_LKMAUTH=n"
+     "CONFIG_UH_LKM_BLOCK=n"
+     "CONFIG_RKP_CFP_JOPP=n"
+     "CONFIG_RKP_CFP_ROPP=n"
+     "CONFIG_RKP_CFP=n"
+     "CONFIG_SECURITY_DEFEX=n"
+     "CONFIG_PROCA=n"
+     "CONFIG_FIVE=n"
+     "CONFIG_RKP=n"
+     "CONFIG_KDP_NS=n"
+     "CONFIG_KDP=n"
+     )
+
+     for config in "${configs[@]}"; do
+         key="${config%%=*}"
+
+         if grep -qE "^(${key}=|# ${key} is not set$)" "$GKI_DEFCONFIG"; then
+             sed -i -E \
+                 -e "s/^${key}=.*/${config}/" \
+                 -e "s/^# ${key} is not set\$/${config}/" \
+                 "$GKI_DEFCONFIG"
+         else
+             echo "$config" >> "$GKI_DEFCONFIG"
+         fi
+     done
      fi
 
   - name: remove check_defconfig