Skip to content

Commit 5ee41b3

Browse files
committed
Bump shell_version and xray key parsing
Update shell_version to 2.8.9 and add compatibility parsing for xray x25519 output. The password extraction now handles variants like "Password (PublicKey):", "Password:", and "PublicKey:" in both privateKey-provided and default branches. Comments note this is temporary and can be removed after one major xray version.
1 parent c59f503 commit 5ee41b3

1 file changed

Lines changed: 19 additions & 3 deletions

File tree

install.sh

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ OK="${Green}[OK]${Font}"
3434
Error="${RedW}[$(gettext "错误")]${Font}"
3535
Warning="${RedW}[$(gettext "警告")]${Font}"
3636

37-
shell_version="2.8.8"
37+
shell_version="2.8.9"
3838
shell_mode="$(gettext "未安装")"
3939
tls_mode="None"
4040
ws_grpc_mode="None"
@@ -842,12 +842,28 @@ keys_set() {
842842
[yY][eE][sS] | [yY])
843843
read_optimize "$(gettext "请输入") privateKey:" "privateKey" "NULL"
844844
keys=$(${xray_bin_dir}/xray x25519 -i "${privateKey}" | tr '\n' ' ')
845-
password=$(echo "${keys}" | awk -F"Password: " '{print $2}' | awk '{print $1}')
845+
## 兼容之前的xray版本,一个大版本后删除
846+
if echo "${keys}" | grep -q "Password (PublicKey): "; then
847+
password=$(echo "${keys}" | awk -F"Password (PublicKey): " '{print $2}' | awk '{print $1}')
848+
elif echo "${keys}" | grep -q "Password: "; then
849+
password=$(echo "${keys}" | awk -F"Password: " '{print $2}' | awk '{print $1}')
850+
elif echo "${keys}" | grep -q "PublicKey: "; then
851+
password=$(echo "${keys}" | awk -F"PublicKey: " '{print $2}' | awk '{print $1}')
852+
fi
853+
## 兼容结束
846854
;;
847855
*)
848856
keys=$(${xray_bin_dir}/xray x25519 | tr '\n' ' ')
849857
privateKey=$(echo "${keys}" | awk -F"PrivateKey: " '{print $2}' | awk '{print $1}')
850-
password=$(echo "${keys}" | awk -F"Password: " '{print $2}' | awk '{print $1}')
858+
## 兼容之前的xray版本,一个大版本后删除
859+
if echo "${keys}" | grep -q "Password (PublicKey): "; then
860+
password=$(echo "${keys}" | awk -F"Password (PublicKey): " '{print $2}' | awk '{print $1}')
861+
elif echo "${keys}" | grep -q "Password: "; then
862+
password=$(echo "${keys}" | awk -F"Password: " '{print $2}' | awk '{print $1}')
863+
elif echo "${keys}" | grep -q "PublicKey: "; then
864+
password=$(echo "${keys}" | awk -F"PublicKey: " '{print $2}' | awk '{print $1}')
865+
fi
866+
## 兼容结束
851867
;;
852868
esac
853869
log_echo "${Green} privateKey: ${privateKey} ${Font}"

0 commit comments

Comments
 (0)