dataease-dm/installer/quick_start.sh

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}-ce.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