aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/cmd/update-reset.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/update-reset.sh b/Library/Homebrew/cmd/update-reset.sh
new file mode 100644
index 000000000..32daffc96
--- /dev/null
+++ b/Library/Homebrew/cmd/update-reset.sh
@@ -0,0 +1,43 @@
+#: @hide_from_man_page
+#: * `update-reset`:
+#: Fetches and resets Homebrew and all tap repositories using `git`(1) to
+#: their latest `origin/master`.
+
+homebrew-update-reset() {
+ local DIR
+
+ for option in "$@"
+ do
+ case "$option" in
+ -\?|-h|--help|--usage) brew help update-reset; exit $? ;;
+ --debug) HOMEBREW_DEBUG=1 ;;
+ -*)
+ [[ "$option" = *d* ]] && HOMEBREW_DEBUG=1
+ ;;
+ *)
+ odie <<EOS
+This command updates brew itself, and does not take formula names.
+Use 'brew upgrade <formula>'.
+EOS
+ ;;
+ esac
+ done
+
+ if [[ -n "$HOMEBREW_DEBUG" ]]
+ then
+ set -x
+ fi
+
+ for DIR in "$HOMEBREW_REPOSITORY" "$HOMEBREW_LIBRARY"/Taps/*/*
+ do
+ [[ -d "$DIR/.git" ]] || continue
+ cd "$DIR" || continue
+ echo "==> Fetching $DIR..."
+ git fetch --tags --force origin
+ echo
+
+ echo "==> Resetting $DIR..."
+ git checkout -B master origin/master
+ echo
+ done
+}