scripts/repair in rvm-1.0.5 vs scripts/repair in rvm-1.0.6
- old
+ new
@@ -13,51 +13,91 @@
(
builtin cd "$rvm_bin_path"
for executable_name in $(\find \. -type l); do
[[ -e "$executable_name" || "$(readlink "$executable_name")" != "$rvm_wrappers_path/"* ]] && continue
if [[ -f "$executable_name" ]] ; then
- "$rvm_scripts_path/log" "info" "Removing stale symlink from $(basename "$executable_name")"
+ "$rvm_scripts_path/log" "info" \
+ "Removing stale symlink from $(basename "$executable_name")"
\rm -f "$executable_name"
fi
done
)
}
# Regenerates each symlink file.
repair_environments() {
- for environment_name in $(\ls "$rvm_environments_path"); do
+ local environment_name environments
+
+ environments=($(cd "$rvm_environments_path" ; find * -type f -maxdepth 0))
+
+ for environment_name in "${environments[@]}" ; do
+
[[ -L "$rvm_environments_path/$environment_name" ]] && continue
- "$rvm_scripts_path/log" "info" "Regenerating environment file for '$environment_name'"
+
+ "$rvm_scripts_path/log" "info" \
+ "Regenerating environment file for '$environment_name'"
+
[[ -f "$rvm_environments_path/$environment_name" ]] && \rm -f "$rvm_environments_path/$environment_name"
- (source "$rvm_scripts_path/base"; __rvm_become "$environment_name"; __rvm_ensure_has_environment_files)
- done; unset environment_name
+
+ (
+ source "$rvm_scripts_path/base"
+
+ __rvm_become "$environment_name"
+
+ __rvm_ensure_has_environment_files
+ )
+
+ done
}
# Removes archives that have incorrect md5 sums.
repair_archives() {
- for archive_file in $(\ls "$rvm_archives_path"); do
+
+ local archive_file archives stored_md5sum
+
+ archives=($(cd "$rvm_archives_path" ; find * -type f -maxdepth 0))
+
+ for archive_file in "${archives[@]}" ; do
+
[[ -f "$rvm_archives_path/$archive_file" ]] || continue
- local stored_md5sum="$($rvm_scripts_path/db "$rvm_config_path/md5" "$archive_file" | head -n1)"
- if [[ -n "$stored_md5sum" ]] && ! "$rvm_scripts_path/md5" "$rvm_archives_path/$archive_file" "$stored_md5sum" ; then
- "$rvm_scripts_path/log" "info" "Removing archive for '$archive_file' - Incorrect md5 checksum."
- \rm -rf "$rvm_archives_path/$archive_file"
+
+ stored_md5sum="$($rvm_scripts_path/db "$rvm_config_path/md5" "$archive_file" | head -n1)"
+
+ if [[ -n "$stored_md5sum" ]] ; then
+
+ if [[ ! "$rvm_scripts_path/md5" "$rvm_archives_path/$archive_file" "$stored_md5sum" ]] ; then
+
+ "$rvm_scripts_path/log" "info" "Removing archive for '$archive_file' - Incorrect md5 checksum."
+
+ rm -rf "$rvm_archives_path/$archive_file"
+ fi
fi
- done; unset archive_file
+ done
+
+ return 0
}
repair_all() {
+
repair_symlinks
+
repair_archives
+
repair_environments
- "$rvm_scripts_path/log" "info" "All items repaired."
+
+ "$rvm_scripts_path/log" "info" \
+ "symlinks, archives and environments have been repaired."
+
+ return 0
}
args=($*)
action="${args[0]}"
args="$(echo ${args[@]:1}) " # Strip trailing / leading / extra spacing.
if [[ -z "$action" ]]; then
- usage ; exit $?
+ usage
+ exit $?
fi
case "$action" in
all) repair_all ;;
symlinks) repair_symlinks ;;