| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #!/bin/bash
- function check_and_install() {
- pkg=$1
- if ! command -v ${pkg} >/dev/null 2>&1; then
- # Ubuntu/Debian
- if command -v apt-get >/dev/null 2>&1; then
- sudo apt-get update
- sudo apt-get install -y ${pkg}
- # CentOS/RHEL
- elif command -v yum >/dev/null 2>&1; then
- sudo yum install -y epel-release
- sudo yum install -y ${pkg}
- # Fedora
- elif command -v dnf >/dev/null 2>&1; then
- sudo dnf install -y ${pkg}
- # Arch Linux
- elif command -v pacman >/dev/null 2>&1; then
- sudo pacman -S ${pkg}
- # openSUSE
- elif command -v zypper >/dev/null 2>&1; then
- sudo zypper install -y ${pkg}
- else
- echo -e "\e[31mUnable to install ${pkg}, unsupported Linux distro\e[0m"
- exit 1
- fi
- fi
- }
- get_tag() {
- curl -fsSL "https://api.github.com/repos/$1/releases/latest" | jq -r '.tag_name'
- }
- # 定义下载函数
- download_file() {
- name=$1
- version=$2
- url=$3
- local_version=$(jq -r ".[\"$name\"]" <$VERSION_FILE)
- echo -e "\e[1;47;34m$name Version Info: 【本地版本】$local_version | 【最新版本】$version\e[0m"
- if [ "$version" != "$local_version" ]; then
- echo "Updating $name to $version"
- # 下载
- if ! curl -L -o "$FILE_DIR/$name" "$url"; then
- echo -e "\e[31mFailed to download $name\e[0m"
- return 1
- fi
- return 0
- fi
- return 0
- }
- process_files() {
- json="{"
- for doc in "${!docs[@]}"; do
- if [[ $doc == *_name ]]; then
- name=${docs[$doc]}
- version=${docs[${doc/_name/_version}]}
- url=${docs[${doc/_name/_url}]}
- download_file "$name" "$version" "$url"
- json+="\"$name\":\"$version\","
- fi
- done
- json="${json%,}}"
- echo "$json" >$VERSION_FILE
- }
|