mikes-macos-developer-disk-cleanup 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mikes-macos-disk-cleanup.sh +31 -3
- package/modules/android-avd.sh +2 -2
- package/modules/android-sdk.sh +14 -7
- package/modules/cocoapods.sh +32 -0
- package/modules/hints.sh +9 -0
- package/modules/node-modules.sh +5 -0
- package/modules/ruby-gems.sh +4 -0
- package/modules/xcode-artifacts.sh +3 -3
- package/package.json +1 -1
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
# - Android SDK packages
|
|
27
27
|
# - Android AVDs
|
|
28
28
|
# - Homebrew caches
|
|
29
|
+
# - CocoaPods
|
|
29
30
|
|
|
30
31
|
# ==== CONFIGURATION DEFAULTS - change as needed ====
|
|
31
32
|
CONFIGFILE="${HOME}/.config/mikes-macos-disk-cleanup.env" # you'll be prompted to create this if it doesn't exist
|
|
@@ -68,9 +69,16 @@ if [ ${INITIALISED:-0} -ne 1 ]; then
|
|
|
68
69
|
fi
|
|
69
70
|
printf "DEVELOPMENT_BASE_DIR=${DEVELOPMENT_BASE_DIR}\n" >${CONFIGFILE}
|
|
70
71
|
echo "Configuration saved to ${CONFIGFILE}"
|
|
72
|
+
echo "NOTE: subsequent invocations will immediately commence deleting files!"
|
|
71
73
|
else
|
|
72
74
|
echo "Not saving configuration..."
|
|
73
75
|
fi
|
|
76
|
+
|
|
77
|
+
read -p "Deleting is about to start! Proceed? [y/n]" SHOULD_PROCEED
|
|
78
|
+
if [ "${SHOULD_PROCEED}" != "y" ]; then
|
|
79
|
+
echo "Exiting..."
|
|
80
|
+
exit 1
|
|
81
|
+
fi
|
|
74
82
|
fi
|
|
75
83
|
|
|
76
84
|
echo "Using development base directory: ${DEVELOPMENT_BASE_DIR}"
|
|
@@ -120,6 +128,13 @@ INITIALSPACE=$(
|
|
|
120
128
|
)
|
|
121
129
|
echo "DISK USAGE BEFORE CLEANUP: ${INITIALSPACE}"
|
|
122
130
|
|
|
131
|
+
# addHint function
|
|
132
|
+
source "${DIR}/modules/hints.sh"
|
|
133
|
+
|
|
134
|
+
# CocoaPods
|
|
135
|
+
source "${DIR}/modules/cocoapods.sh"
|
|
136
|
+
cocoapods
|
|
137
|
+
|
|
123
138
|
# remove everything in ~/Library/Caches
|
|
124
139
|
source "${DIR}/modules/library-caches.sh"
|
|
125
140
|
libraryCaches
|
|
@@ -170,7 +185,20 @@ androidBuildFolders
|
|
|
170
185
|
|
|
171
186
|
# Android SDKs
|
|
172
187
|
source "${DIR}/modules/android-sdk.sh"
|
|
188
|
+
set +e ; # don't exit on error
|
|
173
189
|
androidSDK
|
|
190
|
+
RETCODE=$?
|
|
191
|
+
set -e; # exit on error
|
|
192
|
+
|
|
193
|
+
if [ ${RETCODE} -ne 0 ]; then
|
|
194
|
+
if [ ${RETCODE} -eq 100 ]; then
|
|
195
|
+
echo "Android SDK packages already only have one version installed. Proceeding."
|
|
196
|
+
else
|
|
197
|
+
echo "!!! Failed to clean up Android SDKs !!!"
|
|
198
|
+
echo " check the output above for more info"
|
|
199
|
+
exit ${RETCODE}
|
|
200
|
+
fi
|
|
201
|
+
fi
|
|
174
202
|
|
|
175
203
|
# Android AVDs
|
|
176
204
|
source "${DIR}/modules/android-avd.sh"
|
|
@@ -190,8 +218,8 @@ FINALSPACE=$(
|
|
|
190
218
|
}'
|
|
191
219
|
)
|
|
192
220
|
|
|
193
|
-
echo "
|
|
221
|
+
echo "============================== FINISHED! ================================="
|
|
194
222
|
|
|
195
|
-
echo "
|
|
196
|
-
echo "
|
|
223
|
+
echo "BEFORE CLEANUP: ${INITIALSPACE}"
|
|
224
|
+
echo "NOW: ${FINALSPACE}"
|
|
197
225
|
echo "${HINTS_UPON_FINISH}"
|
package/modules/android-avd.sh
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
androidAVD() {
|
|
2
2
|
# Android Virtual Device Cleanup
|
|
3
|
-
command -v avdmanager >/dev/null 2>&1 && {
|
|
3
|
+
command -v ${ANDROID_HOME}/tools/bin/avdmanager >/dev/null 2>&1 && {
|
|
4
4
|
# get the full path from one of the AVDs
|
|
5
5
|
local FIRST_AVD_PATH=$(avdmanager list avd | grep "Path:" | head -1 | tr -s " "| cut -f3 -d" ")
|
|
6
6
|
|
|
@@ -21,7 +21,7 @@ androidAVD() {
|
|
|
21
21
|
local AVDFOLDERSIZEAFTER=$(du -hs "${FIRST_AVD_PARENTPATH}" | cut -f1)
|
|
22
22
|
echo " AVD folder size before: ${AVDFOLDERSIZEBEFORE}; after: ${AVDFOLDERSIZEAFTER}"
|
|
23
23
|
} || {
|
|
24
|
-
echo "'avdmanager' command not found"
|
|
24
|
+
echo "'${ANDROID_HOME}/tools/bin/avdmanager' command not found"
|
|
25
25
|
return 1
|
|
26
26
|
}
|
|
27
27
|
}
|
package/modules/android-sdk.sh
CHANGED
|
@@ -2,23 +2,29 @@ androidSDK() {
|
|
|
2
2
|
local THISMODULEDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
|
3
3
|
|
|
4
4
|
# Android SDK Manager Cleanup
|
|
5
|
-
command -v sdkmanager >/dev/null 2>&1 && {
|
|
5
|
+
command -v ${ANDROID_HOME}/tools/bin/sdkmanager >/dev/null 2>&1 && {
|
|
6
6
|
|
|
7
7
|
local ANDROIDHOME_BEFORE=$(du -hs $ANDROID_HOME | cut -f1)
|
|
8
8
|
|
|
9
9
|
echo "=== android sdkmanager cleanup ==="
|
|
10
10
|
echo " - BEFORE CLEANUP: ${ANDROIDHOME_BEFORE} (${ANDROID_HOME})"
|
|
11
11
|
|
|
12
|
+
# remove .downloadIntermediates folder if it exists
|
|
13
|
+
if [ -d "${ANDROID_HOME}/.downloadIntermediates" ]; then
|
|
14
|
+
echo " - removing ${ANDROID_HOME}/.downloadIntermediates"
|
|
15
|
+
rm -rf "${ANDROID_HOME}/.downloadIntermediates"
|
|
16
|
+
fi
|
|
12
17
|
# create temporary output file
|
|
13
18
|
local OUTFILENAME=$(mktemp)
|
|
14
19
|
|
|
15
|
-
sdkmanager --list_installed --include_obsolete
|
|
20
|
+
local SDKMANAGER_OUTPUT=$(sdkmanager --list_installed --include_obsolete)
|
|
21
|
+
echo "${SDKMANAGER_OUTPUT}" |
|
|
16
22
|
awk -f "${THISMODULEDIR}/android-sdk.awk" -v outputFile="${OUTFILENAME}"
|
|
17
23
|
|
|
18
24
|
if [ $? -ne 0 ]; then
|
|
19
25
|
echo " WARNING: we couldn't parse the output of 'sdkmanager --list_installed --include_obsolete'"
|
|
20
|
-
echo " (
|
|
21
|
-
return
|
|
26
|
+
echo " (very likely there's just nothing to remove)"
|
|
27
|
+
return 100
|
|
22
28
|
fi
|
|
23
29
|
|
|
24
30
|
echo " - packages to remove: "
|
|
@@ -28,10 +34,11 @@ androidSDK() {
|
|
|
28
34
|
sdkmanager --uninstall --package_file="${OUTFILENAME}"
|
|
29
35
|
local ANDROIDHOME_AFTER=$(du -hs $ANDROID_HOME | cut -f1)
|
|
30
36
|
|
|
31
|
-
echo " - BEFORE CLEANUP: ${ANDROIDHOME_BEFORE} (${ANDROID_HOME})"
|
|
32
|
-
echo " - AFTER CLEANUP: ${ANDROIDHOME_AFTER}"
|
|
37
|
+
echo " - BEFORE ANDROID SDKMANAGER CLEANUP: ${ANDROIDHOME_BEFORE} (${ANDROID_HOME})"
|
|
38
|
+
echo " - AFTER ANDROID SDKMANAGER CLEANUP: ${ANDROIDHOME_AFTER}"
|
|
39
|
+
addHint "- You may need to run android's SDK manager to restore the Android SDK versions you were using"
|
|
33
40
|
} || {
|
|
34
|
-
echo "'sdkmanager' command not found"
|
|
41
|
+
echo "'${ANDROID_HOME}/tools/bin/sdkmanager' command not found"
|
|
35
42
|
return 1
|
|
36
43
|
}
|
|
37
44
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
cocoapods() {
|
|
2
|
+
if [ -d ${HOME}/.cocoapods ]; then
|
|
3
|
+
# Pods folders
|
|
4
|
+
echo "=== clearing Pods folders ==="
|
|
5
|
+
pod cache clean --all
|
|
6
|
+
echo " - looking for Pods folders in ${DEVELOPMENT_BASE_DIR}... "
|
|
7
|
+
local PODS_FOLDERS=$(
|
|
8
|
+
find -E "${DEVELOPMENT_BASE_DIR}" -type d \
|
|
9
|
+
-regex '^.*Pods$' \
|
|
10
|
+
-not -regex "${HOME}/\..*" \
|
|
11
|
+
-not -regex "^.*Pods.+"
|
|
12
|
+
)
|
|
13
|
+
echo " - found Pods folders:"
|
|
14
|
+
IFS=$'\n' # make newlines the only separator
|
|
15
|
+
for PODS_FOLDER in ${PODS_FOLDERS}; do
|
|
16
|
+
echo " - ${PODS_FOLDER}"
|
|
17
|
+
done
|
|
18
|
+
echo " - running 'rm -rf ' in each of the above"
|
|
19
|
+
local PODS_WERE_REMOVED=0
|
|
20
|
+
for PODS_FOLDER in ${PODS_FOLDERS}; do
|
|
21
|
+
PODS_WERE_REMOVED=1
|
|
22
|
+
local PODS_FOLDER_SIZE=$(du -hs "${PODS_FOLDER}" | cut -f1)
|
|
23
|
+
printf " - removing '${PODS_FOLDER}' (${PODS_FOLDER_SIZE}) ... "
|
|
24
|
+
rm -rf "${PODS_FOLDER}"
|
|
25
|
+
echo "done"
|
|
26
|
+
done
|
|
27
|
+
unset IFS
|
|
28
|
+
if [ ${PODS_WERE_REMOVED} -eq 1 ]; then
|
|
29
|
+
addHint "- You'll need to perform a 'pod install' (or npx pod-install) in each of your projects"
|
|
30
|
+
fi
|
|
31
|
+
fi
|
|
32
|
+
}
|
package/modules/hints.sh
ADDED
package/modules/node-modules.sh
CHANGED
|
@@ -13,13 +13,18 @@ nodeModules() {
|
|
|
13
13
|
for NODE_MODULE_FOLDER in ${NODE_MODULE_FOLDERS}; do
|
|
14
14
|
echo " - ${NODE_MODULE_FOLDER}"
|
|
15
15
|
done
|
|
16
|
+
local MODULESWERE_REMOVED=0
|
|
16
17
|
echo " - running 'rm -rf ' in each of the above"
|
|
17
18
|
for NODE_MODULE_FOLDER in ${NODE_MODULE_FOLDERS}; do
|
|
19
|
+
MODULESWERE_REMOVED=1
|
|
18
20
|
local NODE_MODULE_SIZE=$(du -hs "${NODE_MODULE_FOLDER}" | cut -f1)
|
|
19
21
|
printf " - removing '${NODE_MODULE_FOLDER}' (${NODE_MODULE_SIZE}) ... "
|
|
20
22
|
rm -rf "${NODE_MODULE_FOLDER}"
|
|
21
23
|
echo "done"
|
|
22
24
|
done
|
|
23
25
|
unset IFS
|
|
26
|
+
if [ ${MODULESWERE_REMOVED} -eq 1 ]; then
|
|
27
|
+
addHint "- You will need to reinstall node modules in each of your projects"
|
|
28
|
+
fi
|
|
24
29
|
|
|
25
30
|
}
|
package/modules/ruby-gems.sh
CHANGED
|
@@ -20,7 +20,7 @@ xcodeArtifacts() {
|
|
|
20
20
|
# Xcode DeviceLogs
|
|
21
21
|
if [ -d ${HOME}/Library/Developer/CoreSimulator/Caches ]; then
|
|
22
22
|
local XCCACHESIZE=$(du -hs ${HOME}/Library/Developer/CoreSimulator/Caches | cut -f1)
|
|
23
|
-
echo " removing Xcode Caches (${XCCACHESIZE})..."
|
|
23
|
+
echo " removing Xcode CoreSimulator Caches (${XCCACHESIZE})..."
|
|
24
24
|
rm -rf ${HOME}/Library/Developer/CoreSimulator/Caches
|
|
25
25
|
fi
|
|
26
26
|
|
|
@@ -35,11 +35,11 @@ xcodeArtifacts() {
|
|
|
35
35
|
awk '{\
|
|
36
36
|
r=$0;\
|
|
37
37
|
gsub(/^[^[:space:]]+[[:space:]]+/,"",r);\
|
|
38
|
-
printf("- This command would recover %s:\n rm -rf \"%s\"\n",$1, r);\
|
|
38
|
+
printf("- This command would recover an additional %s:\n rm -rf \"%s\"\n",$1, r);\
|
|
39
39
|
}'
|
|
40
40
|
)
|
|
41
41
|
echo "${DEVICESUPPORTCOMMAND}"
|
|
42
|
-
|
|
42
|
+
addHint "${DEVICESUPPORTCOMMAND}"
|
|
43
43
|
fi
|
|
44
44
|
fi # xcode
|
|
45
45
|
}
|