From 591beaefa9fc127fcb59d481b7fa7c046c07cb42 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sat, 9 Aug 2025 01:07:35 +0100 Subject: [PATCH] fix(siren): handle --force-latest better --- extensions.cursor.lock | 3 +-- siren | 14 +++++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/extensions.cursor.lock b/extensions.cursor.lock index d9f8458..3612171 100644 --- a/extensions.cursor.lock +++ b/extensions.cursor.lock @@ -1,5 +1,5 @@ # cursor Extensions -# Generated on Fri Aug 8 12:00:48 BST 2025 +# Generated on Fri Aug 8 12:05:22 BST 2025 alefragnani.project-manager@12.8.0 anthropic.claude-code@1.0.71 @@ -73,7 +73,6 @@ ms-dotnettools.vscode-dotnet-runtime@2.3.6 ms-kubernetes-tools.vscode-kubernetes-tools@1.3.25 ms-python.debugpy@2025.6.0 ms-python.python@2025.6.1 -ms-python.vscode-pylance@2024.8.1 ms-vscode.cmake-tools@1.21.36 ms-vscode.extension-test-runner@0.0.12 ms-vscode.hexeditor@1.11.1 diff --git a/siren b/siren index f38f6d0..b0d83fb 100755 --- a/siren +++ b/siren @@ -1021,6 +1021,7 @@ install_extension() { current_version="$(get_installed_version "${editor_cmd}" "${extension}")" local target_version="${version}" + local latest_version if [[ "${use_latest}" != "false" ]]; then target_version="latest" fi @@ -1028,6 +1029,11 @@ install_extension() { if [[ -z "${current_version}" ]]; then # Extension not installed. info "Installing ${extension}@${target_version}" + elif [[ "${use_latest}" == "force" ]]; then + # Force install latest version. + info "Extension ${extension} is installed (current: ${current_version})," \ + "attempting to force-reinstall latest version" + force_install="true" elif [[ "${current_version}" == "${version}" ]]; then # Exact version already installed. info "Extension ${extension}@${version} is already installed, skipping" @@ -1048,9 +1054,9 @@ install_extension() { if ! install_extension_direct "${editor_cmd}" "${extension}" \ "${target_version}" "${force_install}"; then + local latest_version if [[ "${use_latest}" != "false" ]]; then info "Checking latest version for ${extension}..." - local latest_version latest_version=$(query_latest_version "${extension}") if [[ -n "${latest_version}" ]]; then info " - Latest available version: ${latest_version}" @@ -1061,6 +1067,12 @@ install_extension() { fi fi + if [[ "${current_version}" == "${version}" ]]; then + info "Extension ${extension} is already installed" \ + "(current: ${current_version}), skipping" + return 0 + fi + warn "Direct installation failed, trying .vsix download method..." install_extension_via_vsix "${editor_cmd}" "${extension}" \ "${version}" "${extensions_cache_dir}"