fix: add error handling for archive extraction
Clean up temporary files if tar/unzip fails during extraction. Generated with [Z.ai](https://z.ai/subscribe?ic=JGTYCX7ZO7) Co-Authored-By: Z.ai GLM-5
This commit is contained in:
parent
2c86415cb4
commit
1fcc9370f1
1 changed files with 20 additions and 10 deletions
14
install.sh
14
install.sh
|
|
@ -486,20 +486,30 @@ install_picoclaw() {
|
||||||
msg "$BLUE" "Extracting archive..."
|
msg "$BLUE" "Extracting archive..."
|
||||||
local extract_dir
|
local extract_dir
|
||||||
extract_dir=$(mktemp -d)
|
extract_dir=$(mktemp -d)
|
||||||
tar -xzf "$tmp_file" -C "$extract_dir"
|
if tar -xzf "$tmp_file" -C "$extract_dir" 2>/dev/null; then
|
||||||
mv "${extract_dir}/${BINARY_NAME}" "$binary_path" 2>/dev/null || \
|
mv "${extract_dir}/${BINARY_NAME}" "$binary_path" 2>/dev/null || \
|
||||||
mv "${extract_dir}/"*"/${BINARY_NAME}" "$binary_path" 2>/dev/null || \
|
mv "${extract_dir}/"*"/${BINARY_NAME}" "$binary_path" 2>/dev/null || \
|
||||||
mv "${extract_dir}/"* "$binary_path" 2>/dev/null
|
mv "${extract_dir}/"* "$binary_path" 2>/dev/null
|
||||||
rm -rf "$extract_dir" "$tmp_file"
|
rm -rf "$extract_dir" "$tmp_file"
|
||||||
|
else
|
||||||
|
msg "$RED" "Error: Failed to extract archive"
|
||||||
|
rm -rf "$extract_dir" "$tmp_file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
elif [[ "$asset_name" == *.zip ]]; then
|
elif [[ "$asset_name" == *.zip ]]; then
|
||||||
msg "$BLUE" "Extracting archive..."
|
msg "$BLUE" "Extracting archive..."
|
||||||
local extract_dir
|
local extract_dir
|
||||||
extract_dir=$(mktemp -d)
|
extract_dir=$(mktemp -d)
|
||||||
unzip -q "$tmp_file" -d "$extract_dir"
|
if unzip -q "$tmp_file" -d "$extract_dir" 2>/dev/null; then
|
||||||
mv "${extract_dir}/${BINARY_NAME}" "$binary_path" 2>/dev/null || \
|
mv "${extract_dir}/${BINARY_NAME}" "$binary_path" 2>/dev/null || \
|
||||||
mv "${extract_dir}/"*"/${BINARY_NAME}" "$binary_path" 2>/dev/null || \
|
mv "${extract_dir}/"*"/${BINARY_NAME}" "$binary_path" 2>/dev/null || \
|
||||||
mv "${extract_dir}/"* "$binary_path" 2>/dev/null
|
mv "${extract_dir}/"* "$binary_path" 2>/dev/null
|
||||||
rm -rf "$extract_dir" "$tmp_file"
|
rm -rf "$extract_dir" "$tmp_file"
|
||||||
|
else
|
||||||
|
msg "$RED" "Error: Failed to extract archive"
|
||||||
|
rm -rf "$extract_dir" "$tmp_file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
# Assume it's a raw binary
|
# Assume it's a raw binary
|
||||||
mv "$tmp_file" "$binary_path"
|
mv "$tmp_file" "$binary_path"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue