diff --git a/CHANGELOG.md b/CHANGELOG.md index 5251a0b6..dc881e12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ Please ADD ALL Changes to the UNRELEASED SECTION and not a specific release - git/reset-all: script to run git reset --hard HEAD across all git repositories - git/push-all: script to push all git repositories - linux/dev-update: script to pull core dev repos (scripts, credfeto-global-pre-commit, cs-template, credfeto-ai-skills) and reinstall AI skills +- general/update-dotnet-tools: migrate globally-installed dotnet tools to local, uninstalling them from global and installing locally if not already present, before updating local tools ### Fixed - Shell scripts were cleaned up to pass pre-commit checks, and git/fetch now uses consistent info/success output. - Replace raw echo output with standard die/success/info helpers in network/wg-create diff --git a/general/update-dotnet-tools b/general/update-dotnet-tools index 14d9d8bf..a85decd7 100755 --- a/general/update-dotnet-tools +++ b/general/update-dotnet-tools @@ -13,7 +13,22 @@ info() { printf '\n\033[32m→\033[0m %s\n' "$*" } -for package in $(dotnet tool list --local | tail -n +3 | cut -f 1 -d " " | sort) +local_packages=$(dotnet tool list --local | tail -n +3 | cut -f 1 -d " " | sort) + +for package in $(dotnet tool list --global | tail -n +3 | cut -f 1 -d " " | sort) +do + info "Uninstalling global tool $package..." + dotnet tool uninstall --global "$package" + + if echo "$local_packages" | grep -qx "$package"; then + info "$package is already installed locally" + else + info "Installing $package locally..." + dotnet tool install --local "$package" + fi +done + +for package in $local_packages do info "Updating $package..." dotnet tool update --local "$package"