スクリプトを使ってgithubの最新ファイルを取得します。

スクリプトを使ってgithubの最新ファイルを取得します。

私も同じことをしようとしていますhttps://github.com/eneshecan/whatsapp-for-linux/releasesここで説明されているように:端末からgithubから最新のdebパッケージをダウンロードしてインストールします。 しかし、うまくいきません。 URLがソースコードにはなく、ブラウザにのみ表示されると思いますか?誰でも助けることができますか? debファイルをダウンロードしてインストールするには、文字列として完全なURLが必要です。

答え1

こんなことができます(名誉これ最新バージョンを入手する方法のヒント):

base_url="https://github.com/eneshecan/whatsapp-for-linux/releases/download"
version=$(curl --silent https://api.github.com/repos/eneshecan/whatsapp-for-linux/releases | grep -oP '"tag_name":\s*"v\K[^"]+' | sort -h | tail -n1)
wget "$base_url"/v"$version"/whatsapp-for-linux_"${version}"_amd64.deb

答え2

次のコマンドを使用して、select最新の「Glorious Eggroll」Protonバージョンの1つ以上を選択(bash組み込みを使用)してSteamにダウンロードして抽出しました。

他のリポジトリから.debファイルをダウンロードするように変更するのは簡単です。基本的に@terdonの答えと同じことをしますが、少し素敵です。 (selectダウンロードしたファイルをダウンロードせずに現在のディレクトリとサブディレクトリを確認するコードも含まれています./archives/。古い.tar .gzファイルを外部に移動するのが好きです。混乱を減らすための基本的な作業ディレクトリとダウンロードしたコンテンツがターゲットディレクトリにあります。まだ抽出されていない場合に抽出するコードです。

#!/bin/bash

GE_API_URL='https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases'
GE_json='GE-releases.json'
GE_list='GE-releases.list'
compatdir='/var/games/steam/compatibilitytools.d'
archives='./archives'

mkdir -p "$compatdir"

# Don't download the releases file more than once/day
if [ -e "$GE_json" ] ; then
  GE_date="$(stat --printf "%y" "$GE_json" | cut -d' ' -f 1)"
fi
YMD="$(date +%Y-%m-%d)"

if [ "$GE_date" != "$YMD" ] ; then
  wget "$GE_API_URL" -O "$GE_json"
  jq -r .[].assets[].browser_download_url < "$GE_json" |
    grep '\.tar.gz$' | sort -rV > "$GE_list"
fi

#mapfile -t releases < "$GE_list"         # all
mapfile -t releases < <(head "$GE_list")  # latest 10

echo "Currently installed Proton-GE versions:"
ls "$compatdir" | grep GE | sort -rV
echo

export COLUMNS=80
echo "Select a GE release to download and install or 0 to quit:"
select r in "${releases[@]}"; do
  [ -z "$r" ] && break

  tgz="$(basename "$r")"
  [ -e "$archives/$tgz" ] && tgz="$archives/$tgz"
  if [ ! -e "$tgz" ] ; then
     echo "Downloading $r"
     wget "$r"
  fi

  bn="$(basename "$tgz" ".tar.gz")"
  if [ ! -e "$compatdir/$bn" ] ; then
    echo "Extracting $bn into $compatdir/"
    time tar xfz "$tgz" -C "$compatdir/"
  fi

  echo
  echo -n "Select another version to install or 0 to quit: "
done

関連情報