script/tera/run.sh

127 lines
4.0 KiB
Bash
Raw Normal View History

#!/bin/bash
SHELL_PREFIX="[OneKeyTera]"
# Shell Base Script
set -e
c_red="\033[38;5;1m"
c_blue="\033[38;5;4m"
c_green="\033[38;5;2m"
c_reset="\033[0m"
c_yellow="\033[38;5;3m"
c_prefix="${c_green}${SHELL_PREFIX}>>${c_reset}"
dateStr() {
echo -e "[$(date '+%H:%M:%S')]"
}
info() {
echo -e "$(dateStr)${c_prefix} ${*}"
}
warn() {
echo -e "$(dateStr)${c_prefix} ${c_yellow}${*}${c_reset}"
}
error() {
echo -e "$(dateStr)${c_prefix} ${c_red}${*}${c_reset}"
}
#====================
2019-06-14 06:52:08 +00:00
ROOT=$(pwd)
clear
set -e
info "=============================="
info " 欢迎使用 Tera 一键挖矿系统"
info ""
info " by MiaoWoo"
info ""
info " 版本 v1.1"
info "=============================="
2019-06-14 07:21:53 +00:00
if [[ ! -f "OneKeyTera.sh" || ! -f ".lock" || $(cat .lock) -lt $(($(date +%s) - 86400)) ]]; then
info "更新脚本..."
2019-06-14 07:03:31 +00:00
curl -o OneKeyTera.sh https://git.yumc.pw/cloud/script/raw/master/tera/run.sh
fi
echo $(date +%s) > .lock
info "程序将在 3秒 后运行... Ctrl + C 取消运行..."
2019-06-14 07:21:53 +00:00
sleep 2
info "开始检测运行环境..."
if [[ -z "$(which node)" ]]; then
2019-06-14 06:52:08 +00:00
if [[ ! -d node ]]; then
warn "未安装NodeJS 开始下载二进制包 请稍候..."
info "下载过程根据您的网络状况可能需要 1-10 分钟..."
2019-06-14 06:52:08 +00:00
curl -o node.zip https://nodejs.org/dist/v10.16.0/node-v10.16.0-win-x64.zip
info "下载完成 开始解压Node环境 请稍候..."
2019-06-14 06:52:08 +00:00
unzip -q node.zip
mv node-v10.16.0-win-x64 node
rm -rf node.zip
fi
NODE=$(pwd)/node/node.exe
NPM=$(pwd)/node/npm
if [[ ! -f "${NODE}" ]]; then
error "Node 安装检测未通过 请检查网络是否正常 或删除 node 目录 重新运行本脚本..."
2019-06-14 06:52:08 +00:00
read
exit 1
fi
else
NODE=node
NPM=npm
2019-06-14 06:52:08 +00:00
fi
echo "NodeJS 二进制版本: $(${NODE} -v)"
if [[ ! -d tera ]]; then
warn "未找到 Tera 源代码 开始Clone项目 请稍候..."
info "下载过程根据您的网络状况可能需要 1-5 分钟..."
git clone https://git.yumc.pw/502647092/tera.git
2019-06-14 06:52:08 +00:00
fi
TERA_ROOT=${ROOT}/tera/Source
cd "${TERA_ROOT}"
2019-06-14 06:52:08 +00:00
if [[ ! -d node_modules ]]; then
warn "未安装依赖 开始安装 请稍候..."
info "设置镜像源为 https://registry.npm.taobao.org"
"${NPM}" config set registry https://registry.npm.taobao.org
info "安装过程根据您的网络状况可能需要 1-5 分钟..."
"${NPM}" install
2019-06-14 06:52:08 +00:00
fi
if [[ ! -f "${TERA_ROOT}/node_modules/secp256k1/build/Release/secp256k1.node" ]]; then
warn "未检测到 secp256k1.node 模块 开始下载 Windows 版本..."
mkdir -p "${TERA_ROOT}/node_modules/secp256k1/build/Release"
curl -o "${TERA_ROOT}/node_modules/secp256k1/build/Release/secp256k1.node" https://git.yumc.pw/cloud/script/raw/master/tera/secp256k1.node
fi
2019-06-14 06:52:08 +00:00
# 申请公网IP端口
info "开始申请公网IP端口 请稍候..."
warn "公网IP端口自动映射功能开发中..."
2019-06-14 06:52:08 +00:00
# FRP_SCRIPT=${TERA_ROOT}/frp.js
# if [[ ! -f ${FRP_SCRIPT} ]]; then
# echo "开始下载FRP脚本 请稍候..."
# #curl -o ${FRP_SCRIPT} https://git.yumc.pw/cloud/script/raw/master/tera/frp.js
# fi
# ${NODE} ${FRP_SCRIPT}
# 初始化配置
info "初始化配置参数..."
2019-06-14 06:52:08 +00:00
INIT_SCRIPT=${TERA_ROOT}/init.js
if [[ ! -f ${INIT_SCRIPT} ]]; then
warn "开始下载初始化脚本 请稍候..."
2019-06-14 06:52:08 +00:00
curl -o ${INIT_SCRIPT} https://git.yumc.pw/cloud/script/raw/master/tera/init.js
fi
"${NODE}" ${INIT_SCRIPT}
2019-06-14 06:52:08 +00:00
# 设置NTP服务器
TERA_NTP_SERVER=${TERA_NTP_SERVER:-ntp1.aliyun.com}
info "设置NTP服务器为阿里云地址 ${TERA_NTP_SERVER}"
2019-06-14 06:52:08 +00:00
sed -i s@pool.ntp.org@${TERA_NTP_SERVER}@g ${TERA_ROOT}/core/library.js
info "开始启动挖矿进程..."
echo "setTimeout(()=>require('child_process').exec('start http://127.0.0.1'), 5000)" > temp.js
"${NODE}" temp.js && info "启动完成 打开系统默认浏览器..." && rm -rf temp.js &
while true; do
"${NODE}" run-node.js
warn "程序已关闭 将在3秒后重启 Ctrl + C 取消运行..."
sleep 3
clear
done
info "程序运行完成 按任意键继续..."
2019-06-14 06:52:08 +00:00
read ANYKEY