#!/bin/bash # Copyright (c) 2019-2020 Kevin R Croft # SPDX-License-Identifier: GPL-2.0-or-later # This script reduces the size of an MSYS2 and MingGW installation # under Windows. Its main use is to shrink these areas to fit within # GitHub's cache limits; however it can also be used by end-users wanting # to save space. # # Usage: ./shrink-msys2.sh # set -xuo pipefail set +e # Clean all the package archives from pacman pacman -Scc --noconfirm # Strip binaries using their associated striping tool for dir in /usr /mingw32 /mingw64; do # Enter our directory if we have it cd "${dir}" || continue # Check if we have an associated stripping tool if [[ ! -f "bin/strip.exe" ]]; then continue; fi # Start stripping find . -type f \ \( -iname '*.exe' \ -or -iname '*.a' \ -or -iname '*.dll' \ -or -iname '*.so' \ \) \ -a ! -iname 'strip.exe' \ -print0 \ | xargs -0 ./bin/strip.exe --strip-unneeded done # Delete documentation directories rm -rf /mingw*/share/man rm -rf /mingw*/share/doc # This entire script is best-effort, so always return success exit 0