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