Generalize the script to all OpenRC distributions

This commit is contained in:
alexbe
2025-11-17 23:30:10 +03:00
committed by yuhan6665
parent b7410c4e2f
commit b5e8fdf24f
2 changed files with 32 additions and 6 deletions

View File

@@ -4,7 +4,7 @@ English | [简体中文](README_zh-Hans.md) | [繁體中文](README_zh-Hant.md)
Bash script for installing Xray in operating systems such as CentOS / Debian / OpenSUSE that support systemd. Bash script for installing Xray in operating systems such as CentOS / Debian / OpenSUSE that support systemd.
**For Alpine Linux users**, please refer to **[Alpine Linux Specific Instructions](alpinelinux/README.md)** for installation scripts and guides tailored for Alpine Linux. **For Alpine or Gentoo Linux users**, please refer to **[OpenRC Specific Instructions](alpinelinux/README.md)** for installation scripts and guides tailored for Alpine/Gentoo Linux featured by OpenRC init-system.
--- ---

View File

@@ -3,8 +3,34 @@
set -euo pipefail set -euo pipefail
check_alpine() { pkg_manager() {
if [ -f /etc/alpine-release ]; then local OP="$1" PM=apk
shift
if [ -f /etc/gentoo-release ]; then
PM=emerge
case "$OP" in
add)
OP='-v'
;;
del)
OP='-C'
;;
esac
fi
if [ -z "$@" ]; then
echo "$PM $OP"
else
$PM $OP $@
fi
}
check_distr() {
if [ -z "$(command -v rc-service)" ]; then
echo "No OpenRC init-system detected"
return 1
fi
if [ -f /etc/alpine-release -o -f /etc/gentoo-release ]; then
return 0 return 0
else else
return 1 return 1
@@ -91,7 +117,7 @@ install_dependencies() {
fi fi
if [ "$(command -v apk)" ]; then if [ "$(command -v apk)" ]; then
echo "Installing required dependencies..." echo "Installing required dependencies..."
apk add curl unzip pkg_manager add curl unzip #to generalize installation procedure
else else
echo "error: The script does not support the package manager in this operating system." echo "error: The script does not support the package manager in this operating system."
exit 1 exit 1
@@ -202,7 +228,7 @@ information() {
fi fi
rm -r "$TMP_DIRECTORY" rm -r "$TMP_DIRECTORY"
echo "removed: $TMP_DIRECTORY" echo "removed: $TMP_DIRECTORY"
echo "You may need to execute a command to remove dependent software: apk del curl unzip" echo "You may need to execute a command to remove dependent software: $(pkg_manager del) curl unzip"
if [ "$XRAY_RUNNING" -eq '1' ]; then if [ "$XRAY_RUNNING" -eq '1' ]; then
rc-service xray start rc-service xray start
else else
@@ -212,7 +238,7 @@ information() {
} }
main() { main() {
check_alpine || return 1 check_distr || return 1
check_if_running_as_root || return 1 check_if_running_as_root || return 1
identify_architecture || return 1 identify_architecture || return 1
install_dependencies install_dependencies