#!/bin/bash print_help() { echo -e echo -e "For DOWNLOAD" echo -e "$0 " echo -e echo -e "For UPLOAD" echo -e "$0 " echo -e "Like this:" echo -e "/service/rest/v1/components?repository=" echo -e } search_package() { local package=$1 curl https://pypi.org/project/$package/\#files -s | grep -Eo https://files\.+\.+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 $@