2017-10-15 13:48:42 +00:00
|
|
|
|
#!/bin/sh
|
2018-03-04 14:38:33 +00:00
|
|
|
|
# 获取第一个参数做为目录
|
|
|
|
|
ROOT_FOLDER="$1"
|
2017-10-15 13:48:42 +00:00
|
|
|
|
WEB_FOLDER=""
|
|
|
|
|
ORG_INDEX_FILE="index.original.html"
|
|
|
|
|
INDEX_FILE="index.html"
|
|
|
|
|
TMP_FOLDER="/tmp/tr-web-control"
|
|
|
|
|
PACK_NAME="src.tar.gz"
|
2018-03-28 07:47:48 +00:00
|
|
|
|
WEB_HOST="https://github.com/ronggang/twc-release/raw/master/"
|
2017-10-15 13:48:42 +00:00
|
|
|
|
DOWNLOAD_URL="$WEB_HOST$PACK_NAME"
|
|
|
|
|
# 安装类型
|
|
|
|
|
# 1 安装至当前 Transmission Web 所在目录
|
|
|
|
|
# 2 安装至 TRANSMISSION_WEB_HOME 环境变量指定的目录,参考:https://github.com/transmission/transmission/wiki/Environment-Variables#transmission-specific-variables
|
|
|
|
|
# 使用环境变量时,如果 transmission 不是当前用户运行的,则需要将 TRANSMISSION_WEB_HOME 添加至 /etc/profile 文件,以达到“永久”的目的
|
2018-03-04 14:38:33 +00:00
|
|
|
|
# 3 用户指定参数做为目录,如 sh install-tr-control.sh /usr/local/transmission/share/transmission
|
2017-10-15 13:48:42 +00:00
|
|
|
|
INSTALL_TYPE=-1
|
|
|
|
|
|
|
|
|
|
# 开始
|
|
|
|
|
main() {
|
|
|
|
|
# 判断临时目录是否存在,不存在则创建
|
|
|
|
|
if [ ! -d "$TMP_FOLDER" ]; then
|
|
|
|
|
mkdir -p "$TMP_FOLDER"
|
|
|
|
|
fi
|
|
|
|
|
|
2018-03-04 14:38:33 +00:00
|
|
|
|
# 判断 ROOT_FOLDER 是否为一个有效的目录,如果是则表明传递了一个有效路径
|
|
|
|
|
if [ -d "$ROOT_FOLDER" ]; then
|
|
|
|
|
echo "use arg: $ROOT_FOLDER"
|
|
|
|
|
INSTALL_TYPE=3
|
|
|
|
|
WEB_FOLDER="$ROOT_FOLDER/web"
|
|
|
|
|
else
|
|
|
|
|
# 查找目录
|
|
|
|
|
findWebFolder
|
|
|
|
|
fi
|
2017-10-15 13:48:42 +00:00
|
|
|
|
# 安装
|
|
|
|
|
install
|
|
|
|
|
# 清理
|
|
|
|
|
clear
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# 查找Web目录
|
|
|
|
|
findWebFolder() {
|
|
|
|
|
# 找出web ui 目录
|
|
|
|
|
echo "Searching Transmission Web Folder..."
|
|
|
|
|
# 指定一次当前系统的默认目录
|
|
|
|
|
# 用户如知道自己的 Transmission Web 所在的目录,直接修改这个值,以避免搜索所有目录
|
|
|
|
|
ROOT_FOLDER="/usr/local/transmission/share/transmission"
|
2018-02-06 03:26:04 +00:00
|
|
|
|
# Fedora 或 Debian 发行版的默认 ROOT_FOLDER 目录
|
|
|
|
|
if [ -f /etc/fedora-release ] || [ -f "/etc/debian_version" ]; then
|
2018-02-06 03:13:36 +00:00
|
|
|
|
ROOT_FOLDER="/usr/share/transmission"
|
|
|
|
|
fi
|
2018-03-04 14:38:33 +00:00
|
|
|
|
|
2017-10-15 13:48:42 +00:00
|
|
|
|
# 判断 TRANSMISSION_WEB_HOME 环境变量是否被定义,如果是,直接用这个变量的值
|
|
|
|
|
if [ $TRANSMISSION_WEB_HOME ]; then
|
|
|
|
|
echo "use TRANSMISSION_WEB_HOME: $TRANSMISSION_WEB_HOME"
|
2018-03-29 09:12:01 +00:00
|
|
|
|
# 判断目录是否存在,如果不存在则创建 https://github.com/ronggang/transmission-web-control/issues/167
|
|
|
|
|
if [ ! -d "$TRANSMISSION_WEB_HOME" ]; then
|
|
|
|
|
mkdir -p "$TRANSMISSION_WEB_HOME"
|
|
|
|
|
fi
|
2017-10-15 13:48:42 +00:00
|
|
|
|
INSTALL_TYPE=2
|
|
|
|
|
else
|
|
|
|
|
echo "Looking for folder: $ROOT_FOLDER/web"
|
|
|
|
|
if [ -d "$ROOT_FOLDER/web" ]; then
|
|
|
|
|
WEB_FOLDER="$ROOT_FOLDER/web"
|
|
|
|
|
INSTALL_TYPE=1
|
|
|
|
|
echo "Folder found. Using it."
|
|
|
|
|
else
|
|
|
|
|
echo "Folder not found. Will search the entire /. This will take a while..."
|
|
|
|
|
ROOT_FOLDER=`find / -name 'web' -type d 2>/dev/null| grep 'transmission/web' | sed 's/\/web$//g'`
|
|
|
|
|
|
|
|
|
|
if [ -d "$ROOT_FOLDER/web" ]; then
|
|
|
|
|
WEB_FOLDER="$ROOT_FOLDER/web"
|
|
|
|
|
INSTALL_TYPE=1
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# 安装
|
|
|
|
|
install() {
|
|
|
|
|
# 如果目录存在,则进行下载和更新动作
|
2018-03-04 14:38:33 +00:00
|
|
|
|
if [ $INSTALL_TYPE = 1 -o $INSTALL_TYPE = 3 ]; then
|
2017-10-15 13:48:42 +00:00
|
|
|
|
# 下载最新的安装包
|
|
|
|
|
download
|
|
|
|
|
echo "Installing..."
|
|
|
|
|
# 创建web文件夹,从 20171014 之后,打包文件不包含web目录,直接打包为src下所有文件
|
|
|
|
|
mkdir web
|
|
|
|
|
# 解压缩包
|
|
|
|
|
tar -xzf "$PACK_NAME" -C "web"
|
|
|
|
|
# 如果之前没有安装过,则先将原系统的文件改为
|
|
|
|
|
if [ ! -f "$WEB_FOLDER/$ORG_INDEX_FILE" -a -f "$WEB_FOLDER/$INDEX_FILE" ]; then
|
|
|
|
|
mv "$WEB_FOLDER/$INDEX_FILE" "$WEB_FOLDER/$ORG_INDEX_FILE"
|
|
|
|
|
fi
|
|
|
|
|
# 复制文件到
|
|
|
|
|
cp -r web "$ROOT_FOLDER"
|
|
|
|
|
|
|
|
|
|
# 设置权限
|
|
|
|
|
find "$ROOT_FOLDER" -type d -exec chmod o+rx {} \;
|
|
|
|
|
find "$ROOT_FOLDER" -type f -exec chmod o+r {} \;
|
|
|
|
|
|
|
|
|
|
# 安装完成
|
|
|
|
|
installed
|
|
|
|
|
elif [ $INSTALL_TYPE = 2 ]; then
|
|
|
|
|
# 下载最新的安装包
|
|
|
|
|
download
|
|
|
|
|
echo "Installing..."
|
|
|
|
|
# 解压缩包
|
|
|
|
|
tar -xzf "$PACK_NAME" -C "$TRANSMISSION_WEB_HOME"
|
2018-03-29 13:26:51 +00:00
|
|
|
|
|
|
|
|
|
# 设置权限
|
|
|
|
|
find "$TRANSMISSION_WEB_HOME" -type d -exec chmod o+rx {} \;
|
|
|
|
|
find "$TRANSMISSION_WEB_HOME" -type f -exec chmod o+r {} \;
|
|
|
|
|
|
2017-10-15 13:48:42 +00:00
|
|
|
|
# 安装完成
|
|
|
|
|
installed
|
|
|
|
|
else
|
|
|
|
|
echo "##############################################"
|
|
|
|
|
echo "#"
|
|
|
|
|
echo "# ERROR : Transmisson WEB UI Folder is missing."
|
|
|
|
|
echo "#"
|
|
|
|
|
echo "##############################################"
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# 下载最新的安装包
|
|
|
|
|
download() {
|
|
|
|
|
cd "$TMP_FOLDER"
|
|
|
|
|
echo "Downloading Transmission Web Control..."
|
|
|
|
|
wget "$DOWNLOAD_URL" --no-check-certificate
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# 安装完成
|
|
|
|
|
installed() {
|
|
|
|
|
echo "Transmission Web Control Installation completed!"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# 清除工作
|
|
|
|
|
clear() {
|
|
|
|
|
# 删除安装包
|
|
|
|
|
rm "$PACK_NAME"
|
|
|
|
|
# 删除临时目录
|
|
|
|
|
rm -rf "$TMP_FOLDER"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# 执行
|
2018-02-06 03:13:36 +00:00
|
|
|
|
main
|