Untuk alasan apa pun, svn
solusinya tidak bekerja untuk saya, dan karena saya tidak memerlukan svn
hal lain, tidak masuk akal untuk menghabiskan waktu mencoba membuatnya, jadi saya mencari solusi sederhana menggunakan alat yang sudah saya miliki. Skrip ini hanya menggunakan curl
dan awk
untuk mengunduh semua file dalam direktori GitHub yang dideskripsikan sebagai"/:user:repo/contents/:path"
.
Badan panggilan yang dikembalikan ke perintah GitHub REST API
"GET /repos/:user:repo/contents/:path"
mengembalikan objek yang menyertakan a"download_url"
tautan untuk setiap file dalam direktori.
Skrip baris perintah ini memanggil bahwa REST API menggunakan curl
dan mengirimkan hasilnya melalui AWK, yang memfilter semua kecuali baris "download_url", menghapus tanda kutip dan koma dari tautan, dan kemudian mengunduh tautan menggunakan panggilan lain untuk mengeriting.
curl -s https://api.github.com/repos/:user/:repo/contents/:path | awk \
'/download_url/ { gsub("\"|,", "", $2); system("curl -O "$2"); }'