Как получить список имен артефактов в заданном пространстве имен для хранилища Nexus - PullRequest
0 голосов
/ 29 марта 2019

Мне нужно получить только имена артефактов в данном пространстве имен в хранилище Nexus.

Nexus URL для загрузки: http://nexus.it.test.com:8080/nexus/repository/rawcentral/com.test/

Пример имени артефакта: release_dev_2018909.tar.gz

Пожалуйста, помогите мне с точной командой оболочки, чтобы получить список всех имен артефактов,ТИА

1 Ответ

0 голосов
/ 29 марта 2019

Приведенный выше скрипт может помочь вам

#!/bin/bash

url="http://fileserver/service/rest/beta/search/assets?repository=maven-releases&name=dot-files"

artifact=( $(curl -s -X GET --header 'Accept: application/json' \
    "$url" | grep -Po '"downloadUrl" : ".*?[^\\]*.(zip.sha1|zip)",' | \
    awk -F '"' '{print $4}' | sort -Vr | head -n2) )

((${#artifact[@]})) || echo "ERROR! No artifacts found at provided url!"

for i in "${artifact[@]}"; do
    if [[ $i =~ (sha1) ]]; then
        checksum=$(curl -s "$i" | awk '{print $1}')
    else
        file="$(echo "$i" | awk -F "/" '{print $NF}')"
        curl -sO "$i" || { echo "ERROR: Download failed!"; exit 1; }

        if [ "$(sha1sum "$file" | awk '{print $1}')" != "$checksum" ]; then
            echo "ERROR: Checksum validation on $file failed!"; exit 1;
        else
            printf "Downloaded : %s\nChecksum   : %s\n" "$file" "$checksum"
        fi
    fi
done
#EOF
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...