commit: d72647710c1f67bffde1559a4463cf19b42ade69
Author: Yixun Lan <dlan <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 7 14:08:04 2020 +0000
Commit: Yixun Lan <dlan <AT> gentoo <DOT> org>
CommitDate: Tue Apr 7 14:20:29 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d7264771
net-proxy/trojan: add multi instances support
enable running multi instances while using openrc.
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Yixun Lan <dlan <AT> gentoo.org>
net-proxy/trojan/files/trojan.initd | 15 +++++++++++----
net-proxy/trojan/trojan-1.14.1.ebuild | 14 ++++++++++++++
net-proxy/trojan/trojan-1.15.1.ebuild | 14 ++++++++++++++
3 files changed, 39 insertions(+), 4 deletions(-)
diff --git a/net-proxy/trojan/files/trojan.initd
b/net-proxy/trojan/files/trojan.initd
index cee794ad4d7..2990245430d 100644
--- a/net-proxy/trojan/files/trojan.initd
+++ b/net-proxy/trojan/files/trojan.initd
@@ -1,10 +1,17 @@
#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-TJ_CONFIG="/etc/trojan/config.json"
-TJ_PIDFILE="/run/trojan.pid"
-TJ_LOG="/var/log/trojan.log"
+TJ_NAME=${SVCNAME##*.}
+if [ -n "${TJ_NAME}" -a "${SVCNAME}" != "trojan" ]; then
+ TJ_PIDFILE="/run/trojan.${TJ_NAME}.pid"
+ TJ_CONFIG="/etc/trojan/${TJ_NAME}.json"
+ TJ_LOG="/var/log/trojan.${TJ_NAME}.log"
+else
+ TJ_PIDFILE="/run/trojan.pid"
+ TJ_CONFIG="/etc/trojan/config.json"
+ TJ_LOG="/var/log/trojan.log"
+fi
depend() {
need net
diff --git a/net-proxy/trojan/trojan-1.14.1.ebuild
b/net-proxy/trojan/trojan-1.14.1.ebuild
index aa4fa9f95be..21f494f1364 100644
--- a/net-proxy/trojan/trojan-1.14.1.ebuild
+++ b/net-proxy/trojan/trojan-1.14.1.ebuild
@@ -45,3 +45,17 @@ src_install() {
src_test() {
cmake_src_test -j1
}
+
+pkg_postinst() {
+ elog "Running Trojan with multi instances"
+ elog ""
+
+ elog "Prepare /etc/trojan/\${blah}.json first"
+ elog "Config with Openrc"
+ elog " ln -s /etc/init.d/trojan{,.\${blah}}"
+ elog " rc-update add trojan.\${blah} default"
+ elog ""
+ elog "Config with Systemd"
+ elog " systemctl enable trojan.\${blah}"
+ elog ""
+}
diff --git a/net-proxy/trojan/trojan-1.15.1.ebuild
b/net-proxy/trojan/trojan-1.15.1.ebuild
index aa4fa9f95be..21f494f1364 100644
--- a/net-proxy/trojan/trojan-1.15.1.ebuild
+++ b/net-proxy/trojan/trojan-1.15.1.ebuild
@@ -45,3 +45,17 @@ src_install() {
src_test() {
cmake_src_test -j1
}
+
+pkg_postinst() {
+ elog "Running Trojan with multi instances"
+ elog ""
+
+ elog "Prepare /etc/trojan/\${blah}.json first"
+ elog "Config with Openrc"
+ elog " ln -s /etc/init.d/trojan{,.\${blah}}"
+ elog " rc-update add trojan.\${blah} default"
+ elog ""
+ elog "Config with Systemd"
+ elog " systemctl enable trojan.\${blah}"
+ elog ""
+}