95 lines
3.0 KiB
Bash
Executable File
95 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# update_config_params.sh
|
|
# This script updates configuration parameters in preferences.xml and Prefs.java
|
|
# based on values defined in env.txt
|
|
|
|
set -e # Exit on error
|
|
|
|
# Change to the project root directory
|
|
cd "$(dirname "$0")/.."
|
|
PROJECT_ROOT=$(pwd)
|
|
|
|
# Source the environment variables
|
|
source "$PROJECT_ROOT/env.txt"
|
|
|
|
echo "Updating configuration parameters..."
|
|
|
|
# Paths to the target files
|
|
PREFS_XML="$PROJECT_ROOT/app/src/main/res/xml/preferences.xml"
|
|
|
|
# Detect Prefs.java path dynamically (supports any package name)
|
|
PREFS_JAVA=$(find "$PROJECT_ROOT/app/src/main/java" -type f -name "Prefs.java" | head -n 1)
|
|
|
|
if [ ! -f "$PREFS_JAVA" ]; then
|
|
echo "Error: Prefs.java not found!"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Prefs.java found at: $PREFS_JAVA"
|
|
|
|
# Update defaultValue attributes in preferences.xml
|
|
update_xml_default() {
|
|
local key=$1
|
|
local value=$2
|
|
|
|
# Экранируем слеши и кавычки
|
|
value=$(printf '%s\n' "$value" | sed -e 's/[\/&]/\\&/g' -e 's/"/\\"/g')
|
|
|
|
perl -0777 -i -pe "
|
|
s{
|
|
(<[^>]*android:key=\"$key\"[^>]*android:defaultValue=\")
|
|
[^\"]*
|
|
(\")
|
|
}{\${1}$value\${2}}xg
|
|
" "$PREFS_XML"
|
|
}
|
|
|
|
# Update default values in Prefs.java
|
|
update_java_default() {
|
|
local key=$1
|
|
local value=$2
|
|
|
|
if [ "$value" == "true" ] || [ "$value" == "false" ]; then
|
|
sed -i "s/getBoolean(\"$key\", [^)]*)/getBoolean(\"$key\", $value)/g" "$PREFS_JAVA"
|
|
elif [[ "$value" =~ ^[0-9]+$ ]]; then
|
|
sed -i "s/Integer\.parseInt(pref\.getString(\"$key\", \"[^\"]*\"))/Integer.parseInt(pref.getString(\"$key\", \"$value\"))/g" "$PREFS_JAVA"
|
|
else
|
|
escaped_value=$(printf '%s\n' "$value" | sed -e 's/[\/&]/\\&/g')
|
|
sed -i "s|getString(\"$key\", \"[^\"]*\")|getString(\"$key\", \"$escaped_value\")|g" "$PREFS_JAVA"
|
|
fi
|
|
}
|
|
|
|
# Update all configuration parameters
|
|
echo "Updating startup preferences..."
|
|
update_xml_default "onboot" "$DEFAULT_ONBOOT"
|
|
update_xml_default "onopen" "$DEFAULT_ONOPEN"
|
|
update_xml_default "foreground" "$DEFAULT_FOREGROUND"
|
|
|
|
update_java_default "onboot" "$DEFAULT_ONBOOT"
|
|
update_java_default "onopen" "$DEFAULT_ONOPEN"
|
|
update_java_default "foreground" "$DEFAULT_FOREGROUND"
|
|
|
|
echo "Updating Dropbear settings..."
|
|
update_xml_default "port" "$DEFAULT_PORT"
|
|
update_xml_default "sshserverpassword" "$DEFAULT_SSH_SERVER_PASSWORD"
|
|
update_xml_default "rsyncbuffer" "$DEFAULT_RSYNCBUFFER"
|
|
update_xml_default "extra" "$DEFAULT_EXTRA"
|
|
update_xml_default "env" "$DEFAULT_ENV"
|
|
|
|
update_java_default "port" "$DEFAULT_PORT"
|
|
update_java_default "sshserverpassword" "$DEFAULT_SSH_SERVER_PASSWORD"
|
|
update_java_default "rsyncbuffer" "$DEFAULT_RSYNCBUFFER"
|
|
update_java_default "extra" "$DEFAULT_EXTRA"
|
|
update_java_default "env" "$DEFAULT_ENV"
|
|
|
|
echo "Updating paths..."
|
|
update_xml_default "path" "$DEFAULT_PATH"
|
|
update_xml_default "home" "$DEFAULT_HOME"
|
|
update_xml_default "shell" "$DEFAULT_SHELL"
|
|
|
|
update_java_default "path" "$DEFAULT_PATH"
|
|
update_java_default "home" "$DEFAULT_HOME"
|
|
update_java_default "shell" "$DEFAULT_SHELL"
|
|
|
|
echo "Configuration parameters updated successfully!"
|