mikes-macos-developer-disk-cleanup 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 "=== FINISHED! ==="
221
+ echo "============================== FINISHED! ================================="
194
222
 
195
- echo "DISK USAGE BEFORE CLEANUP: ${INITIALSPACE}"
196
- echo "DISK USAGE AFTER CLEANUP: ${FINALSPACE}"
223
+ echo "BEFORE CLEANUP: ${INITIALSPACE}"
224
+ echo "NOW: ${FINALSPACE}"
197
225
  echo "${HINTS_UPON_FINISH}"
@@ -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
  }
@@ -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 " (maybe there's just nothing to remove?)"
21
- return 1
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
+ }
@@ -0,0 +1,9 @@
1
+ addHint(){
2
+ local HINTLENGTH=${#HINTS_UPON_FINISH}
3
+ if [ ${HINTLENGTH} -gt 0 ]; then
4
+ # add a newline if there was a previous hint
5
+ HINTS_UPON_FINISH=$(printf "%s\n%s", "${HINTS_UPON_FINISH}", "${1}")
6
+ else
7
+ HINTS_UPON_FINISH="${1}"
8
+ fi
9
+ }
@@ -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
  }
@@ -40,5 +40,9 @@ rubyGems() {
40
40
  done
41
41
 
42
42
  unset IFS
43
+ rvm use
43
44
  }
45
+
46
+ addHint "- You might need to reinstall your ruby gems"
47
+ addHint " - e.g. gem install cocoapods"
44
48
  }
@@ -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
- HINTS_UPON_FINISH=$(printf "${HINTS_UPON_FINISH}\n${DEVICESUPPORTCOMMAND}")
42
+ addHint "${DEVICESUPPORTCOMMAND}"
43
43
  fi
44
44
  fi # xcode
45
45
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mikes-macos-developer-disk-cleanup",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Cleans up a developer's mac disk space. Aggressively.",
5
5
  "bin": {
6
6
  "mikes-macos-disk-cleanup": "mikes-macos-disk-cleanup.sh"