You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
4.5 KiB
126 lines
4.5 KiB
#!/bin/sh |
|
## |
|
## mldonkey.sh -- MLdonkey server control script |
|
## |
|
|
|
# read global configuration |
|
. @l_prefix@/etc/mldonkey/mldonkeyrc |
|
|
|
# read local configuration |
|
if [ -f $HOME/.mldonkeyrc ]; then |
|
. $HOME/.mldonkeyrc |
|
fi |
|
|
|
# command line check |
|
if [ $# -lt 1 ]; then |
|
echo "** ERROR: Usage: mldonkey {start|cui|gui|stop}" 1>&2 |
|
exit 1 |
|
fi |
|
|
|
# send MLdonkey server a query |
|
server_query () { |
|
query="$1" |
|
cmd="@l_prefix@/lib/openpkg/curl" |
|
if [ ".$MLD_ADMIN_USER" != . ]; then |
|
cmd="$cmd --basic --user \"${MLD_ADMIN_USER}:${MLD_ADMIN_PASS}\"" |
|
fi |
|
cmd="$cmd \"http://${MLD_HTTP_ADDR}:${MLD_HTTP_PORT}/submit?q=$query\"" |
|
eval "$cmd </dev/null >/dev/null 2>&1" |
|
} |
|
|
|
# dispatch into command |
|
cmd="$1" |
|
shift |
|
case "$cmd" in |
|
start ) |
|
# make sure the MLdonkey user run-time environment exists |
|
if [ ! -d ${MLD_HOMEDIR} ] ; then |
|
echo "++ creating MLdonkey home directory \"${MLD_HOMEDIR}\"" |
|
if ! mkdir ${MLD_HOMEDIR}; then |
|
echo "** ERROR: creation of \"${MLD_HOMEDIR}\" failed!" 1>&2 |
|
exit 1 |
|
fi |
|
fi |
|
|
|
# run MLdonkey server |
|
echo "++ starting MLdonkey server" |
|
cmd="@l_prefix@/bin/mlnet" |
|
if [ ".${MLD_RUNASUSER}" != . ]; then |
|
cmd="$cmd -run_as_user \"${MLD_RUNASUSER}\"" |
|
fi |
|
cmd="$cmd -log_file \"${MLD_HOMEDIR}/mldonkey.log\"" |
|
cmd="$cmd -client_name \"${MLD_CLIENT_NAME}\"" |
|
cmd="$cmd -client_bind_addr \"${MLD_CLIENT_ADDR}\"" |
|
cmd="$cmd -telnet_port \"${MLD_TELNET_PORT}\"" |
|
cmd="$cmd -telnet_bind_addr \"${MLD_TELNET_ADDR}\"" |
|
cmd="$cmd -gui_port \"${MLD_GUI_PORT}\"" |
|
cmd="$cmd -gui_bind_addr \"${MLD_GUI_ADDR}\"" |
|
cmd="$cmd -chat_port \"${MLD_CHAT_PORT}\"" |
|
cmd="$cmd -chat_bind_addr \"${MLD_CHAT_ADDR}\"" |
|
cmd="$cmd -http_port \"${MLD_HTTP_PORT}\"" |
|
cmd="$cmd -http_bind_addr \"${MLD_HTTP_ADDR}\"" |
|
cmd="$cmd -gift_port \"${MLD_GIFT_PORT}\"" |
|
cmd="$cmd -allowed_ips \"${MLD_ALLOWIPS}\"" |
|
cmd="$cmd -nolimit_ips \"${MLD_NOLIMITIPS}\"" |
|
cmd="$cmd -enable_donkey \"${MLD_ENABLE_DONKEY}\"" |
|
cmd="$cmd -enable_overnet \"${MLD_ENABLE_OVERNET}\"" |
|
cmd="$cmd -enable_bittorrent \"${MLD_ENABLE_BITTORRENT}\"" |
|
cmd="$cmd -enable_opennap \"${MLD_ENABLE_OPENNAP}\"" |
|
cmd="$cmd -enable_soulseek \"${MLD_ENABLE_SOULSEEK}\"" |
|
cmd="$cmd -enable_gnutella \"${MLD_ENABLE_GNUTELLA}\"" |
|
cmd="$cmd -enable_gnutella2 \"${MLD_ENABLE_GNUTELLA2}\"" |
|
cmd="$cmd -enable_fasttrack \"${MLD_ENABLE_FASTTRACK}\"" |
|
cmd="$cmd -enable_directconnect \"${MLD_ENABLE_DIRECTCONNECT}\"" |
|
cmd="$cmd -enable_openft \"${MLD_ENABLE_OPENFT}\"" |
|
cmd="$cmd -enable_fileTP \"${MLD_ENABLE_FILETP}\"" |
|
cmd="$cmd -mldonkey_bin \"@l_prefix@/bin\"" |
|
cmd="$cmd -mldonkey_gui \"@l_prefix@/bin/mlgui\"" |
|
cmd="$cmd -max_hard_download_rate \"${MLD_RATE_LOW_DOWNLOAD}\"" |
|
cmd="$cmd -max_hard_upload_rate \"${MLD_RATE_LOW_UPLOAD}\"" |
|
cmd="$cmd -temp_directory \"${MLD_PATH_TEMP}\"" |
|
if [ ".${MLD_FLAGS}" != . ]; then |
|
cmd="$cmd ${MLD_FLAGS}" |
|
fi |
|
( cd ${MLD_HOMEDIR} || exit 1 |
|
eval exec $cmd </dev/null >>${MLD_HOMEDIR}/mldonkey.log 2>&1 & |
|
) >/dev/null 2>&1 |
|
;; |
|
cui ) |
|
# connect to console user interface |
|
echo "++ entering MLdonkey console user interface" |
|
exec telnet ${MLD_TELNET_ADDR} ${MLD_TELNET_PORT} |
|
;; |
|
gui ) |
|
# run MLdonkey GUI |
|
if [ ! -f @l_prefix@/bin/mlgui ]; then |
|
echo "** ERROR: MLdonkey GUI not available" 1>&2 |
|
exit 1 |
|
fi |
|
echo "++ entering MLdonkey graphical user interface" |
|
exec @l_prefix@/bin/mlgui ${1+"$@"} |
|
;; |
|
slow ) |
|
# run MLdonkey in slow mode |
|
echo "++ running MLdonkey server in slow mode" |
|
server_query "set+max_hard_download_rate+${MLD_RATE_LOW_DOWNLOAD}" |
|
server_query "set+max_hard_upload_rate+${MLD_RATE_LOW_UPLOAD}" |
|
;; |
|
fast ) |
|
# run MLdonkey in fast mode |
|
echo "++ running MLdonkey server in fast mode" |
|
server_query "set+max_hard_download_rate+${MLD_RATE_HIGH_DOWNLOAD}" |
|
server_query "set+max_hard_upload_rate+${MLD_RATE_HIGH_UPLOAD}" |
|
;; |
|
stop ) |
|
# send MLdonkey server the kill command |
|
echo "++ stopping MLdonkey server" |
|
server_query "close_fds" |
|
server_query "save" |
|
server_query "kill" |
|
;; |
|
* ) |
|
echo "** ERROR: invalid command \"$cmd\"" 1>&2 |
|
exit 1 |
|
;; |
|
esac |
|
|
|
|