62 lines
1.2 KiB
Bash
Executable File
62 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
print_help() {
|
|
echo -e
|
|
echo -e "For DOWNLOAD"
|
|
echo -e "$0 <package>"
|
|
echo -e
|
|
echo -e "For UPLOAD"
|
|
echo -e "$0 <nexus_host> <repository>"
|
|
echo -e "Like this:"
|
|
echo -e "<nexus_host>/service/rest/v1/components?repository=<repository>"
|
|
echo -e
|
|
}
|
|
|
|
search_package() {
|
|
local package=$1
|
|
curl https://pypi.org/project/$package/\#files -s | grep -Eo https://files\.+$package\.+whl > urls.txt
|
|
}
|
|
|
|
download_package() {
|
|
wget -nc -i urls.txt
|
|
}
|
|
|
|
# insert nexus_host, repository and package to upload
|
|
upload_package() {
|
|
local nexus_host=$1
|
|
local repository=$2
|
|
local package=$3
|
|
curl -X POST "$nexus_host/service/rest/v1/components?repository=$repository" \
|
|
-H "accept: application/json" \
|
|
-H "Content-Type: multipart/form-data" \
|
|
-F "pypi.asset=@$package" -i
|
|
}
|
|
|
|
|
|
upload_packages() {
|
|
local packages=$(ls *.whl *.tar.gz)
|
|
for package in $packages; do
|
|
upload_package $@ $package
|
|
rm $package
|
|
done
|
|
}
|
|
|
|
|
|
remove_all_packages() {
|
|
rm *.whl *.tar.gz urls.txt
|
|
}
|
|
|
|
|
|
main() {
|
|
if [[ $# -eq 1 ]]; then
|
|
search_package $@
|
|
download_package
|
|
elif [[ $# -eq 2 ]]; then
|
|
upload_packages $@
|
|
remove_all_packages
|
|
else
|
|
print_help
|
|
fi
|
|
}
|
|
|
|
main $@ |