Commit d22fb4b908bccf598029fe369331f3fbbf9f7cad
1 parent
d1b3870047
bundle-cleanup command to remove unused bundles.
Showing 1 changed file with 30 additions and 0 deletions Side-by-side Diff
antigen.zsh
... | ... | @@ -107,6 +107,36 @@ bundle-install! () { |
107 | 107 | bundle-install --update |
108 | 108 | } |
109 | 109 | |
110 | +bundle-cleanup () { | |
111 | + | |
112 | + # Find directores in ANTIGEN_BUNDLE_DIR, that are not in the bundles record. | |
113 | + local unidentified_bundles="$(comm -13 \ | |
114 | + <(echo-non-empty "$bundles" | awk '{print $1}' | sort) \ | |
115 | + <(ls -1 "$ANTIGEN_BUNDLE_DIR"))" | |
116 | + | |
117 | + if [[ -z $unidentified_bundles ]]; then | |
118 | + echo "You don't have any unidentified bundles." | |
119 | + return 0 | |
120 | + fi | |
121 | + | |
122 | + echo The following bundles are not recorded: | |
123 | + echo "$unidentified_bundles" | sed 's/^/ /' | |
124 | + | |
125 | + echo -n '\nDelete them all? [y/N] ' | |
126 | + if read -q; then | |
127 | + echo | |
128 | + echo | |
129 | + echo "$unidentified_bundles" | while read name; do | |
130 | + echo -n Deleting $name... | |
131 | + rm -rf "$ANTIGEN_BUNDLE_DIR/$name" | |
132 | + echo ' done.' | |
133 | + done | |
134 | + else | |
135 | + echo | |
136 | + echo Nothing deleted. | |
137 | + fi | |
138 | +} | |
139 | + | |
110 | 140 | bundle-load () { |
111 | 141 | if [[ $1 == --init ]]; then |
112 | 142 | do_init=true |