5
5
# MACROS
6
6
# ======
7
7
8
+ fast_rmdir () {
9
+ if [[ -d " $1 " ]] && [[ -n " $1 " ]] && [[ ! " $1 " = " /" ]] && [[ ! " $1 " = " ~" ]]; then
10
+ echo " Removing directory: $1 "
11
+ sudo find " $1 " -type f -delete -print | wc -l
12
+ sudo rm -rf " $1 "
13
+ fi
14
+ }
15
+
16
+ list_installed_dpkg () {
17
+ dpkg --get-selections $@ | grep -v deinstall | awk ' {print $1}'
18
+ }
19
+
8
20
# macro to print a line of equals
9
21
# # (silly but works)
10
22
printSeparationLine () {
@@ -79,7 +91,7 @@ echo ""
79
91
# Remove Android library
80
92
BEFORE=$( getAvailableSpace)
81
93
82
- sudo rm -rf /usr/local/lib/android || true
94
+ fast_rmdir /usr/local/lib/android || true
83
95
84
96
AFTER=$( getAvailableSpace)
85
97
SAVED=$(( AFTER- BEFORE))
@@ -90,7 +102,7 @@ printSavedSpace $SAVED "Android library"
90
102
BEFORE=$( getAvailableSpace)
91
103
92
104
# https://github.community/t/bigger-github-hosted-runners-disk-space/17267/11
93
- sudo rm -rf /usr/share/dotnet || true
105
+ fast_rmdir /usr/share/dotnet || true
94
106
95
107
AFTER=$( getAvailableSpace)
96
108
SAVED=$(( AFTER- BEFORE))
@@ -99,8 +111,8 @@ printSavedSpace $SAVED ".NET runtime"
99
111
# Remove Haskell runtime
100
112
BEFORE=$( getAvailableSpace)
101
113
102
- sudo rm -rf /opt/ghc || true
103
- sudo rm -rf /usr/local/.ghcup || true
114
+ fast_rmdir /opt/ghc || true
115
+ fast_rmdir /usr/local/.ghcup || true
104
116
105
117
AFTER=$( getAvailableSpace)
106
118
SAVED=$(( AFTER- BEFORE))
@@ -111,19 +123,19 @@ printSavedSpace $SAVED "Haskell runtime"
111
123
112
124
BEFORE=$( getAvailableSpace)
113
125
114
- sudo apt-get remove -y ' ^ aspnetcore-. *' || echo " ::warning::The command [sudo apt-get remove -y '^aspnetcore-.*'] failed to complete successfully. Proceeding... "
115
- sudo apt-get remove -y ' ^dotnet-.* ' --fix-missing || echo " ::warning::The command [sudo apt-get remove -y '^dotnet-.*' --fix-missing] failed to complete successfully. Proceeding... "
116
- sudo apt-get remove -y ' ^llvm-.* ' --fix-missing || echo " ::warning::The command [sudo apt-get remove -y '^llvm-.*' --fix-missing] failed to complete successfully. Proceeding... "
117
- sudo apt-get remove -y ' php.* ' --fix-missing || echo " ::warning::The command [sudo apt-get remove -y 'php.*' --fix-missing] failed to complete successfully. Proceeding... "
118
- sudo apt-get remove -y ' ^mongodb-.* ' --fix-missing || echo " ::warning::The command [sudo apt-get remove -y '^mongodb-.*' --fix-missing] failed to complete successfully. Proceeding ..."
119
- sudo apt-get remove -y ' ^mysql-.* ' --fix-missing || echo " ::warning::The command [sudo apt-get remove -y '^mysql-.*' --fix-missing] failed to complete successfully. Proceeding... "
120
- sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing || echo " ::warning::The command [sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing] failed to complete successfully. Proceeding... "
121
- sudo apt-get remove -y google-cloud-sdk --fix-missing || echo " ::debug::The command [sudo apt-get remove -y google-cloud-sdk --fix-missing] failed to complete successfully. Proceeding ..."
122
- sudo apt-get remove -y google-cloud-cli --fix-missing || echo " ::debug::The command [sudo apt-get remove -y google-cloud-cli --fix-missing] failed to complete successfully. Proceeding... "
123
- sudo apt-get remove -y microsoft-edge-stable --fix-missing || echo " ::debug::The command [sudo apt-get remove -y microsoft-edge-stable --fix-missing] failed to complete successfully. Proceeding... "
124
- sudo apt-get remove -y snapd --fix-missing || echo " ::debug::The command [ sudo apt-get remove -y snapd --fix-missing] failed to complete successfully. Proceeding... "
125
- sudo apt-get autoremove -y || echo " ::warning::The command [ sudo apt-get autoremove -y] failed to complete successfully. Proceeding... "
126
- sudo apt-get clean || echo " ::warning::The command [sudo apt-get clean ] failed to complete successfully. Proceeding..."
126
+ pkgs= $( list_installed_dpkg ' microsoft-edge-* ' ' snapd-* ' ' aspnetcore-*' ' dotnet-* ' ' llvm-* ' ' *php* ' ' mongodb-* ' ' mysql-* ' azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri ' google-cloud-* ' ' gcloud-* ' || true )
127
+ gcloud_prerm= ' #!/bin/sh
128
+ echo $0
129
+ if [ -d "/usr/lib/google-cloud-sdk" ]; then
130
+ echo "Cleaning Google Cloud CLI files ..."
131
+ find /usr/lib/google-cloud-sdk -type f -delete -print | wc -l
132
+ rm -rf /usr/lib/ google-cloud-sdk
133
+ echo "Cleaning Google Cloud CLI manuals ..."
134
+ find /usr/share/man -type f -name "gcloud*" -delete -print | wc -l
135
+ fi '
136
+ echo " $gcloud_prerm " | sudo tee /var/lib/dpkg/info/google-cloud-cli-anthoscli.prerm > /dev/null
137
+ echo " $gcloud_prerm " | sudo tee /var/lib/dpkg/info/google-cloud-cli.prerm > /dev/null
138
+ sudo apt-get remove --autoremove -y $pkgs || echo " ::warning::The command [sudo apt-get remove -y ] failed to complete successfully. Proceeding..."
127
139
128
140
AFTER=$( getAvailableSpace)
129
141
SAVED=$(( AFTER- BEFORE))
0 commit comments