xcad 5 bulan lalu
induk
melakukan
e289d23168
1 mengubah file dengan 21 tambahan dan 5 penghapusan
  1. 21 5
      scripts/install.sh

+ 21 - 5
scripts/install.sh

@@ -260,15 +260,21 @@ download_release() {
   
   local temp_dir
   temp_dir=$(mktemp -d)
-  trap 'rm -rf "$temp_dir"' EXIT
   
   local archive_file="$temp_dir/boilerplates.tar.gz"
   
   if command -v curl >/dev/null 2>&1; then
-    curl -fsSL -o "$archive_file" "$download_url" || error "Failed to download release"
+    curl -fsSL -o "$archive_file" "$download_url" || {
+      rm -rf "$temp_dir"
+      error "Failed to download release"
+    }
   elif command -v wget >/dev/null 2>&1; then
-    wget -qO "$archive_file" "$download_url" || error "Failed to download release"
+    wget -qO "$archive_file" "$download_url" || {
+      rm -rf "$temp_dir"
+      error "Failed to download release"
+    }
   else
+    rm -rf "$temp_dir"
     error "Neither curl nor wget found. Please install one of them."
   fi
   
@@ -284,17 +290,27 @@ download_release() {
   mkdir -p "$(dirname "$TARGET_DIR")"
   
   # Extract with strip-components to remove the top-level directory
-  tar -xzf "$archive_file" -C "$(dirname "$TARGET_DIR")"
+  tar -xzf "$archive_file" -C "$(dirname "$TARGET_DIR")" || {
+    rm -rf "$temp_dir"
+    error "Failed to extract release"
+  }
   
   # Rename extracted directory to target name
   local extracted_dir
   extracted_dir=$(dirname "$TARGET_DIR")/"$REPO_NAME-${version#v}"
   
   if [[ ! -d "$extracted_dir" ]]; then
+    rm -rf "$temp_dir"
     error "Extraction failed: expected directory $extracted_dir not found"
   fi
   
-  mv "$extracted_dir" "$TARGET_DIR"
+  mv "$extracted_dir" "$TARGET_DIR" || {
+    rm -rf "$temp_dir"
+    error "Failed to move extracted files to $TARGET_DIR"
+  }
+  
+  # Clean up temp directory
+  rm -rf "$temp_dir"
   
   log "Release extracted to $TARGET_DIR"