forked from github/dataease
86 lines
2.2 KiB
Bash
86 lines
2.2 KiB
Bash
|
|
if [[ -x "$(command -v python)" ]];then
|
|
py_cmd='python'
|
|
elif [[ -x "$(command -v python3)" ]]; then
|
|
py_cmd='python3'
|
|
fi
|
|
|
|
server_url="github.com"
|
|
|
|
echo -ne "检测 ${server_url} ... "
|
|
curl -m 5 -kIs https://${server_url} >/dev/null
|
|
|
|
if [ $? != 0 ];then
|
|
echo "failed"
|
|
echo "没有找到稳定的下载服务器,请稍候重试"
|
|
exit 1
|
|
else
|
|
echo "ok"
|
|
fi
|
|
|
|
rm -f /tmp/de_latest_release
|
|
|
|
$py_cmd - <<EOF
|
|
# -*- coding: UTF-8 -*-
|
|
import os
|
|
import json
|
|
import re
|
|
|
|
latest_release=""
|
|
release_pattern="v2\.\d+\.\d+$"
|
|
|
|
def get_releases(page):
|
|
try:
|
|
releases=os.popen("curl -s https://api.github.com/repos/dataease/dataease/releases?page=%d" % (page)).read()
|
|
releases=[ x["name"] for x in json.loads(releases) if x["prerelease"] == False ]
|
|
except Exception as e:
|
|
print(str(e))
|
|
print("Failed to obtain Release information, please check the network.")
|
|
exit(1)
|
|
else:
|
|
for release in releases:
|
|
if re.search(release_pattern,release) != None:
|
|
return release
|
|
|
|
page = 1
|
|
while (page <= 3):
|
|
latest_release = get_releases(page)
|
|
if (latest_release != "" and latest_release != None):
|
|
break
|
|
page += 1
|
|
|
|
if latest_release == None or latest_release == "":
|
|
print("Failed to obtain latest version, please try again.")
|
|
exit(1)
|
|
|
|
# 记录最新版本号
|
|
os.popen("echo "+latest_release+" > /tmp/de_latest_release")
|
|
EOF
|
|
|
|
if [ ! -f /tmp/de_latest_release ]; then
|
|
echo "获取最新版本失败,请检查网络连接是否正常"
|
|
exit 1
|
|
fi
|
|
latest_version=$(cat /tmp/de_latest_release)
|
|
|
|
echo "开始下载 DataEase ${latest_version} 版本在线安装包"
|
|
|
|
installer_file="dataease-online-installer-${latest_version}.tar.gz"
|
|
download_url="https://${server_url}/dataease/dataease/releases/download/${latest_version}/$installer_file"
|
|
echo "下载地址: ${download_url}"
|
|
curl -LOk -m 60 -o $installer_file $download_url
|
|
|
|
if [ ! -f ${installer_file} ];then
|
|
echo "下载在线安装包失败,请试试重新执行一次安装命令。"
|
|
exit 1
|
|
fi
|
|
|
|
tar zxvf ${installer_file}
|
|
if [ $? != 0 ];then
|
|
echo "下载在线安装包失败,请试试重新执行一次安装命令。"
|
|
rm -f ${installer_file}
|
|
exit 1
|
|
fi
|
|
|
|
cd ${installer_file%.tar.gz}
|
|
/bin/bash install.sh |