Vamos começar com a função bash que eu tinha à mão para meu uso pessoal:
wget_github_zip() {
if [[ $1 =~ ^-+h(elp)?$ ]] ; then
printf "%s\n" "Downloads a github snapshot of a master branch.\nSupports input URLs of the forms */repo_name, *.git, and */master.zip"
return
fi
if [[ ${1} =~ /archive/master.zip$ ]] ; then
download=${1}
out_file=${1/\/archive\/master.zip}
out_file=${out_file##*/}.zip
elif [[ ${1} =~ .git$ ]] ; then
out_file=${1/%.git}
download=${out_file}/archive/master.zip
out_file=${out_file##*/}.zip
else
out_file=${1/%\/} # remove trailing '/'
download=${out_file}/archive/master.zip
out_file=${out_file##*/}.zip
fi
wget -c ${download} -O ${out_file}
}
Você quer que o arquivo seja sempre chamado master.zip e sempre seja baixado no seu diretório pessoal, então:
wget_github_zip() {
if [[ $1 =~ ^-+h(elp)?$ ]] ; then
printf "%s\n" "Downloads a github snapshot of a master branch.\nSupports input URLs of the forms */repo_name, *.git, and */master.zip"
return
fi
if [[ ${1} =~ /archive/master.zip$ ]] ; then
download=${1}
elif [[ ${1} =~ .git$ ]] ; then
out_file=${1/%.git}
download=${out_file}/archive/master.zip
else
out_file=${1/%\/} # remove trailing '/'
download=${out_file}/archive/master.zip
fi
wget -c ${download} -O ~/master.zip && unzip ~/master.zip && mv ~/master.zip ~/myAddons
}
No entanto, existem algumas coisas para você considerar:
1) Meu script original fornecerá um nome de arquivo zip exclusivo para cada download, com base no nome do repositório github, que geralmente é o que a maioria das pessoas deseja, em vez de ser chamado master
e ter que ser manualmente renomeie-os depois para unicidade. Nessa versão do script, você pode usar o valor de $ out_file para nomear com exclusividade o diretório raiz da árvore descompactada.
2) Se você realmente quiser que todos os arquivos zip
carregados sejam nomeados ~/master.zip
, você deseja excluir cada um depois de terem sido descompactados?
3) Já que você parece querer sempre colocar tudo no diretório ~/myAddons
, por que não executar todas as operações lá e economizar a necessidade de mover o diretório descompactado?