Github限定ですが、レポジトリの中から特定のファイルだけをHTTPでダウンロードするコマンドを作ってみました。
レポジトリの中の1ファイルだけダウンロードしたい場合に使えます。
1ファイルが100MBまでダウンロードできます。
準備
GithubのPersonal access tokenを事前に作成しておきます。
https://github.com/settings/tokens
ファイルをダウンロード
$ git clone https://gist.github.com/56cdb6a297d38aaa6440.git
もしくは
$ curl https://gist.githubusercontent.com/wf9a5m75/56cdb6a297d38aaa6440/raw/f5af8da3424b9a0df407125cb69d6355e6c0f19a/filedownload.sh -O
環境変数として、~/.profile
に以下を追加します。
export GITHUB_ACCESS_TOKEN="<YOUR PERSONAL ACCESS TOKEN IS HERE>"
export GITHUB_USERNAME="<YOUR GITHUB ACCOUNT NAME>"
export REPO_OWNER="<REPOSITORY OWNER NAME>"
使い方1
./filedownload.sh "レポジトリ名" "ファイルパス"
例えば MyRepository
というレポジトリから、tools/bin/stericson.busybox-1.23.2.apk
をダウンロードします。
$ ./filedownload.sh MyRepository tools/bin/stericson.busybox-1.23.2.apk
---DONE
これでstericson.busybox-1.23.2.apk
がローカルにできているはずです。
使い方2
githubのblobのURLを直接渡すことも出来ます。
$ ./filedownload.sh https://github.com/MyName/MyRepository/blob/tools/bin/stericson.busybox-1.23.2.apk
何が嬉しいの?
pssh
コマンドと合わせて使うとハッピーになれます。
$ pssh -h hosts.txt --inline-stdout -t 0 "filedownload.sh https://github.com/MyName/MyRepository/blob/tools/bin/stericson.busybox-1.23.2.apk"