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..."
|
||||
local extract_dir
|
||||
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_path" 2>/dev/null
|
||||
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
|
||||
msg "$BLUE" "Extracting archive..."
|
||||
local extract_dir
|
||||
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_path" 2>/dev/null
|
||||
rm -rf "$extract_dir" "$tmp_file"
|
||||
else
|
||||
msg "$RED" "Error: Failed to extract archive"
|
||||
rm -rf "$extract_dir" "$tmp_file"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
# Assume it's a raw binary
|
||||
mv "$tmp_file" "$binary_path"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue