| 
									
										
										
										
											2024-10-18 01:46:03 -05:00
										 |  |  | #!/bin/bash | 
					
						
							| 
									
										
										
										
											2024-10-31 15:36:55 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-18 01:46:03 -05:00
										 |  |  | set -eu | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-31 16:26:48 -05:00
										 |  |  | {% if yadm.os == "Darwin" %} | 
					
						
							|  |  |  | # install homebrew if it's missing | 
					
						
							|  |  |  | if ! command -v brew >/dev/null 2>&1; then | 
					
						
							| 
									
										
										
										
											2024-12-04 11:44:03 -06:00
										 |  |  | 	echo "Installing homebrew" | 
					
						
							|  |  |  | 	/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | 
					
						
							| 
									
										
										
										
											2024-10-31 16:26:48 -05:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [ -f "$HOME/.Brewfile" ]; then | 
					
						
							| 
									
										
										
										
											2024-12-04 11:44:03 -06:00
										 |  |  | 	echo "Updating homebrew bundle" | 
					
						
							|  |  |  | 	brew bundle --global | 
					
						
							| 
									
										
										
										
											2024-10-31 16:26:48 -05:00
										 |  |  | fi | 
					
						
							|  |  |  | {% endif %} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-02 20:28:36 +00:00
										 |  |  | {% if yadm.os == "Linux" %} | 
					
						
							|  |  |  | echo "installing git" | 
					
						
							|  |  |  | sudo apt-get install -y git | 
					
						
							|  |  |  | packages=() | 
					
						
							|  |  |  | packages+=( | 
					
						
							|  |  |  | 	"bat" | 
					
						
							|  |  |  | 	"boxes" | 
					
						
							|  |  |  | 	"catimg" | 
					
						
							|  |  |  | 	"duf" | 
					
						
							|  |  |  | 	"editorconfig" | 
					
						
							|  |  |  | 	"fdfind" | 
					
						
							|  |  |  | 	"figlet" | 
					
						
							|  |  |  | 	"fzf" | 
					
						
							|  |  |  | 	"gh" | 
					
						
							|  |  |  | 	#"git-delta" # this is a special case that will be handled seperately | 
					
						
							|  |  |  | 	"gnupg" | 
					
						
							|  |  |  | 	"gron" | 
					
						
							|  |  |  | 	#"gum" # this is a special case that will be handled seperately | 
					
						
							|  |  |  | 	"highlight" | 
					
						
							|  |  |  | 	# "hr" # may not be available | 
					
						
							|  |  |  | 	"htop" | 
					
						
							|  |  |  | 	"jq" | 
					
						
							|  |  |  | 	"lolcat" | 
					
						
							|  |  |  | 	"lsd" | 
					
						
							|  |  |  | 	"neovim" | 
					
						
							|  |  |  | 	#"nodejs" Using alternate install method | 
					
						
							|  |  |  | 	#"nvm" # will use install script | 
					
						
							|  |  |  | 	#"ots" # not available for debian? | 
					
						
							|  |  |  | 	"peco" | 
					
						
							|  |  |  | 	#"pngpaste" # no deb package | 
					
						
							|  |  |  | 	"pwgen" | 
					
						
							|  |  |  | 	"shellcheck" | 
					
						
							|  |  |  | 	#"slackcat" # no deb package | 
					
						
							|  |  |  | 	#"slackdump" # no deb package | 
					
						
							|  |  |  | 	#"tag" # no deb package | 
					
						
							|  |  |  | 	"thefuck" | 
					
						
							|  |  |  | 	"tldr" | 
					
						
							|  |  |  | 	"tmux" | 
					
						
							|  |  |  | 	"vim" | 
					
						
							|  |  |  | 	#"watch" # standard in debian | 
					
						
							|  |  |  | 	"wget" | 
					
						
							|  |  |  | 	"yadm" | 
					
						
							|  |  |  | 	"zoxide" | 
					
						
							|  |  |  | 	"zsh-autosuggestions" | 
					
						
							| 
									
										
										
										
											2024-12-04 11:44:03 -06:00
										 |  |  | 	# "zsh-syntax-highlighting" | 
					
						
							| 
									
										
										
										
											2024-12-02 20:28:36 +00:00
										 |  |  | ) | 
					
						
							|  |  |  | {% endif %} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-18 01:46:03 -05:00
										 |  |  | # Directory to look for bootstrap executables in | 
					
						
							|  |  |  | BOOTSTRAP_D="${BASH_SOURCE[0]}.d" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [[ ! -d "$BOOTSTRAP_D" ]]; then | 
					
						
							| 
									
										
										
										
											2024-12-04 11:44:03 -06:00
										 |  |  | 	echo "Error: bootstrap directory '$BOOTSTRAP_D' not found" >&2 | 
					
						
							|  |  |  | 	exit 1 | 
					
						
							| 
									
										
										
										
											2024-10-18 01:46:03 -05:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-31 15:36:55 -05:00
										 |  |  | # This will execute all executable files (excluding templates and editor | 
					
						
							| 
									
										
										
										
											2024-10-31 15:37:49 -05:00
										 |  |  | # backups) in the $BOOTSTRAP_D directory when run. | 
					
						
							| 
									
										
										
										
											2024-10-31 15:36:55 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-18 01:46:03 -05:00
										 |  |  | find -L "$BOOTSTRAP_D" -type f | sort | while IFS= read -r bootstrap; do | 
					
						
							| 
									
										
										
										
											2024-12-04 11:44:03 -06:00
										 |  |  | 	if [[ -x "$bootstrap" && ! "$bootstrap" =~ "##" && ! "$bootstrap" =~ "~$" ]]; then | 
					
						
							|  |  |  | 		if ! "$bootstrap"; then | 
					
						
							|  |  |  | 			echo "Error: bootstrap '$bootstrap' failed" >&2 | 
					
						
							|  |  |  | 			exit 1 | 
					
						
							|  |  |  | 		fi | 
					
						
							|  |  |  | 	fi | 
					
						
							| 
									
										
										
										
											2024-10-18 01:46:03 -05:00
										 |  |  | done |