refactor: address review suggestions
This commit is contained in:
+18
-12
@@ -151,32 +151,37 @@ fetch_package_versions() {
|
||||
local owner="$1"
|
||||
local package_name="$2"
|
||||
local page=1
|
||||
local limit=100
|
||||
local aggregate_file page_file headers_file meta http_code status_text request_id page_length path
|
||||
local limit="${PAGE_LIMIT:-100}"
|
||||
local aggregate_file page_file headers_file meta http_code status_text request_id page_length path tmp_file
|
||||
local encoded_owner encoded_package_name
|
||||
|
||||
if [[ ! "${limit}" =~ ^[0-9]+$ ]] || (( limit <= 0 )); then
|
||||
fail "Invalid PAGE_LIMIT: ${limit}"
|
||||
fi
|
||||
|
||||
encoded_owner="$(url_encode "${owner}")"
|
||||
encoded_package_name="$(url_encode "${package_name}")"
|
||||
|
||||
aggregate_file="$(mktemp)"
|
||||
page_file="$(mktemp)"
|
||||
headers_file="$(mktemp)"
|
||||
printf '[]' > "${aggregate_file}"
|
||||
|
||||
while :; do
|
||||
path="/api/v1/packages/${encoded_owner}/nuget/${encoded_package_name}?page=${page}&limit=${limit}"
|
||||
page_file="$(mktemp)"
|
||||
headers_file="$(mktemp)"
|
||||
: > "${page_file}"
|
||||
: > "${headers_file}"
|
||||
meta="$(api_request GET "${path}" "${page_file}" "${headers_file}")"
|
||||
IFS=$'\t' read -r http_code status_text request_id <<< "${meta}"
|
||||
rm -f "${headers_file}"
|
||||
|
||||
if [[ "${http_code}" == "404" ]]; then
|
||||
rm -f "${page_file}" "${aggregate_file}"
|
||||
rm -f "${page_file}" "${headers_file}" "${aggregate_file}"
|
||||
printf '[]'
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [[ ! "${http_code}" =~ ^2 ]]; then
|
||||
rm -f "${page_file}" "${aggregate_file}"
|
||||
rm -f "${page_file}" "${headers_file}" "${aggregate_file}"
|
||||
fail "Unexpected response for package ${package_name}: ${status_text}"
|
||||
fi
|
||||
|
||||
@@ -185,7 +190,6 @@ fetch_package_versions() {
|
||||
tmp_file="$(mktemp)"
|
||||
jq -s '.[0] + .[1]' "${aggregate_file}" "${page_file}" > "${tmp_file}"
|
||||
mv "${tmp_file}" "${aggregate_file}"
|
||||
rm -f "${page_file}"
|
||||
|
||||
if (( page_length < limit )); then
|
||||
break
|
||||
@@ -195,7 +199,7 @@ fetch_package_versions() {
|
||||
done
|
||||
|
||||
cat "${aggregate_file}"
|
||||
rm -f "${aggregate_file}"
|
||||
rm -f "${page_file}" "${headers_file}" "${aggregate_file}"
|
||||
}
|
||||
|
||||
collect_package_candidates() {
|
||||
@@ -288,14 +292,15 @@ process_candidates() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
body_file="$(mktemp)"
|
||||
headers_file="$(mktemp)"
|
||||
while IFS=$'\t' read -r package_name version _created_at; do
|
||||
[[ -z "${package_name}" ]] && continue
|
||||
|
||||
body_file="$(mktemp)"
|
||||
headers_file="$(mktemp)"
|
||||
: > "${body_file}"
|
||||
: > "${headers_file}"
|
||||
meta="$(api_request DELETE "/api/v1/packages/$(url_encode "${owner}")/nuget/$(url_encode "${package_name}")/$(url_encode "${version}")" "${body_file}" "${headers_file}")"
|
||||
IFS=$'\t' read -r http_code status_text request_id <<< "${meta}"
|
||||
rm -f "${body_file}" "${headers_file}"
|
||||
|
||||
if [[ "${http_code}" =~ ^2 ]]; then
|
||||
log "Deleted package ${package_name} version ${version} -> ${status_text}"
|
||||
@@ -311,6 +316,7 @@ process_candidates() {
|
||||
done < "${candidate_file}"
|
||||
|
||||
log "Summary: packages=${package_count} versions=${total_version_count} kept=${kept_count} candidates=${candidate_count} deleted=${deleted_count} errors=${error_count}"
|
||||
rm -f "${body_file}" "${headers_file}"
|
||||
}
|
||||
|
||||
main() {
|
||||
|
||||
Reference in New Issue
Block a user