Browse Source

fix: move brew auto-install into gimme_pkg()

Kyle P Davis 6 năm trước cách đây
mục cha
commit
96034e1923
6 tập tin đã thay đổi với 41 bổ sung30 xóa
  1. 33 17
      gimme
  2. 0 13
      gimmes/_default
  3. 5 0
      gimmes/_pkg_mgr
  4. 1 0
      gimmes/apt
  5. 1 0
      gimmes/apt-get
  6. 1 0
      gimmes/brew

+ 33 - 17
gimme

@@ -32,31 +32,43 @@ has() {
 
 gimme_pkg() {
 	if [[ "$OS" = "Darwin" ]]; then
-		if brew cask cat "$1" &>/dev/null; then
-			if brew cask list "$1" &>/dev/null; then
-				if [[ "$FORCE" ]]; then
-					brew cask reinstall "$@"
+		if ! has brew; then
+			has curl  ||  gimme_pkg curl
+			[[ -d "$HOME/homebrew" ]]  ||  (mkdir "$HOME/homebrew" 2>/dev/null  &&  curl -L "https://github.com/Homebrew/homebrew/tarball/master" | tar xz --strip 1 -C "$HOME/homebrew"  &&  "$HOME/homebrew/bin/brew" update)
+		fi
+		if [[ "$1" ]]; then
+			if brew cask cat "$1" &>/dev/null; then
+				if brew cask list "$1" &>/dev/null; then
+					if [[ "$FORCE" ]]; then
+						brew cask reinstall "$@"
+					else
+						echo "# SKIPPED: $GIMME  (force reinstall/upgrade via:  gimme -f $GIMME)"
+					fi
 				else
-					echo "# SKIPPED: $GIMME  (force reinstall/upgrade via:  gimme -f $GIMME)"
+					brew cask install "$@"
 				fi
-			else
-				brew cask install "$@"
-			fi
-		elif brew cat "$1" &>/dev/null; then
-			if brew list "$1" &>/dev/null; then
-				if [[ "$FORCE" ]]; then
-					brew upgrade "$@"  ||  echo "# WARN: forced upgrade failed (it may already be up to date)"
+			elif brew cat "$1" &>/dev/null; then
+				if brew list "$1" &>/dev/null; then
+					if [[ "$FORCE" ]]; then
+						brew upgrade "$@"  ||  echo "# WARN: forced upgrade failed (it may already be up to date)"
+					else
+						echo "# SKIPPED: $GIMME  (force upgrade via:  gimme -f $GIMME)"
+					fi
 				else
-					echo "# SKIPPED: $GIMME  (force upgrade via:  gimme -f $GIMME)"
+					brew install "$@"
 				fi
 			else
-				brew install "$@"
+				brew search "$1"
 			fi
-		else
-			brew search "$1"
 		fi
 	else
-		sudo apt-get -y install "$@"
+		if ! has apt-get; then
+			echo "ERROR: Your OS does not have 'apt-get' and is not currently supported."
+			echo "For support please see the website: $GIMME_URL"
+		fi
+		if [[ "$1" ]]; then
+			sudo apt-get -y install "$@"
+		fi
 	fi
 }
 
@@ -175,6 +187,10 @@ else # normal usage
 				pip list --format=columns --outdated
 				exit 0
 				;;
+			-*)
+				echo "# ERROR: Unknown option: $GIMME"
+				continue
+				;;
 		esac
 
 		! [[ "$DEBUG" ]] || set -x

+ 0 - 13
gimmes/_default

@@ -3,19 +3,6 @@ set -o errexit -o pipefail
 
 if ! has "$GIMME"; then
 
-	has curl  ||  gimme_pkg curl
-
-	if [[ "$OS" = "Darwin" ]]; then
-		if ! has brew; then
-			[[ -d "$HOME/homebrew" ]]  ||  (mkdir "$HOME/homebrew" 2>/dev/null  &&  curl -L "https://github.com/Homebrew/homebrew/tarball/master" | tar xz --strip 1 -C "$HOME/homebrew"  &&  "$HOME/homebrew/bin/brew" update)
-		fi
-	else
-		if ! has apt-get; then
-			echo "ERROR: Your OS does not have 'apt-get' and is not currently supported."
-			echo "For support please see the website: $GIMME_URL"
-		fi
-	fi
-
 	gimme_pkg "$GIMME"
 
 fi

+ 5 - 0
gimmes/_pkg_mgr

@@ -0,0 +1,5 @@
+#!/bin/bash
+set -o errexit -o pipefail
+
+# call gimme_pkg handler with no package to just do general prep for packages
+gimme_pkg ""

+ 1 - 0
gimmes/apt

@@ -0,0 +1 @@
+apt-get

+ 1 - 0
gimmes/apt-get

@@ -0,0 +1 @@
+_pkg_mgr

+ 1 - 0
gimmes/brew

@@ -0,0 +1 @@
+_pkg_mgr