129 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env sh
 | |
| 
 | |
| _autoinstall_base () {
 | |
| 	plug_path="$HOME/.config/vim/autoload/plug.vim"
 | |
| 	if [ ! -f "$plug_path" ]
 | |
| 	then
 | |
| 		_autoinstall_file "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" "$plug_path"
 | |
| 		[ -x "$(command -v vim)" ] && yes | vim +'PlugInstall --sync' +qa --not-a-term
 | |
| 	fi
 | |
| 
 | |
| 	nvim_dir="$HOME/.config/nvim"
 | |
| 	if [ ! -d "$nvim_dir" ]
 | |
| 	then
 | |
| 		_autoinstall_git "https://github.com/AstroNvim/AstroNvim" "$nvim_dir"
 | |
| 		[ -x "$(command -v nvim)" ] && nvim --headless -c 'autocmd User PackerComplete quitall' -c 'PackerSync'
 | |
| 	fi
 | |
| 
 | |
| 	if [ ! -x "$(command -v starship)" ]
 | |
| 	then
 | |
| 		mkdir -p "$HOME/.local/bin"
 | |
| 		curl -sS "https://starship.rs/install.sh" | BIN_DIR="$HOME/.local/bin" FORCE=1 sh
 | |
| 	fi
 | |
| 
 | |
| 	_autoinstall_env "$WAKATIME_HOME/.wakatime.cfg"
 | |
| 
 | |
| 	cp -n "$HOME/.ssh/authorized_keys.default" "$HOME/.ssh/authorized_keys"
 | |
| 
 | |
| 	_autoinstall_file \
 | |
| 		"https://raw.githubusercontent.com/qw3rtman/git-fire/master/git-fire" \
 | |
| 		"$HOME/.local/bin/git-fire"
 | |
| 
 | |
| 	return 0
 | |
| }
 | |
| 
 | |
| _autoinstall_graphical () {
 | |
| 	_autoinstall_file \
 | |
| 		"https://raw.githubusercontent.com/dracula/alacritty/master/dracula.yml" \
 | |
| 		"$HOME/.config/alacritty/dracula.yml"
 | |
| 
 | |
| 	_autoinstall_file \
 | |
| 		"https://raw.githubusercontent.com/dracula/duckduckgo/master/monkeyscript.user.js" \
 | |
| 		"$HOME/.local/share/qutebrowser/greasemonkey/ddg-dracula.user.js"
 | |
| 
 | |
| 	_autoinstall_git \
 | |
| 		"https://github.com/dracula/qutebrowser.git" \
 | |
| 		"$HOME/.config/qutebrowser/dracula"
 | |
| 
 | |
| 	_autoinstall_git \
 | |
| 		"https://github.com/dracula/gtk.git" \
 | |
| 		"$HOME/.themes/Dracula"
 | |
| 
 | |
| 	_autoinstall_archive \
 | |
| 		"https://github.com/dracula/gtk/releases/download/v3.0/Dracula-cursors.tar.xz" \
 | |
| 		"$HOME/.icons/Dracula-cursors.tar.xz"
 | |
| 
 | |
| 	_autoinstall_archive \
 | |
| 		"$(curl -fsSL 'https://data.services.jetbrains.com/products?code=TBA&release.type=release&fields=releases' | jq -r '.[0].releases[0].downloads.linux.link')" \
 | |
| 		"$HOME/.local/bin/jetbrains-toolbox.tar.gz" \
 | |
| 		&& mv -f "$HOME/.local/bin/jetbrains-toolbox-"*"/jetbrains-toolbox" "$HOME/.local/bin/" \
 | |
| 		&& rm -rf "$HOME/.local/bin/jetbrains-toolbox-"*
 | |
| 
 | |
| 	return 0
 | |
| }
 | |
| 
 | |
| _autoinstall_all () {
 | |
| 	_autoinstall_base
 | |
| 	_autoinstall_graphical
 | |
| 
 | |
| 	return 0
 | |
| }
 | |
| 
 | |
| _autoinstall_git () {
 | |
| 	if [ ! -d "$2" ]
 | |
| 	then
 | |
| 		echo "Installing repo $1 to $2"
 | |
| 		mkdir -p "$2"
 | |
| 		git clone "$1" "$2" >/dev/null 2>&1
 | |
| 		return 0
 | |
| 	fi
 | |
| 	return 1
 | |
| }
 | |
| 
 | |
| _autoinstall_file () {
 | |
| 	if [ ! -f "$2" ]
 | |
| 	then
 | |
| 		echo "Installing file $1 to $2"
 | |
| 		file_path=$(dirname "$2")
 | |
| 		mkdir -p "$file_path"
 | |
| 		cd "$file_path" || exit
 | |
| 		curl -fsSLo "$2" "$1"
 | |
| 		return 0
 | |
| 	fi
 | |
| 	return 1
 | |
| }
 | |
| 
 | |
| _autoinstall_archive () {
 | |
| 	if [ ! -f "$2" ]
 | |
| 	then
 | |
| 		echo "Installing archive $1 to $2"
 | |
| 		file_path=$(dirname "$2")
 | |
| 		mkdir -p "$file_path"
 | |
| 		cd "$file_path" || exit
 | |
| 		curl -fsSLo "$2" "$1"
 | |
| 		tar xaf "$2"
 | |
| 		return 0
 | |
| 	fi
 | |
| 	return 1
 | |
| }
 | |
| 
 | |
| _autoinstall_env () {
 | |
| 	if [ -x "$(command -v envsubst)" ]
 | |
| 	then
 | |
| 		envsubst < "$1.tpl" > "$1"
 | |
| 		return 0
 | |
| 	fi
 | |
| 	return 1
 | |
| }
 | |
| 
 | |
| action="${1:-base}"
 | |
| case $action in
 | |
| 	all)		_autoinstall_all ;;
 | |
| 	base)		_autoinstall_base ;;
 | |
| 	graphical)	_autoinstall_graphical ;;
 | |
| 	git)		_autoinstall_git "$2" "$3" ;;
 | |
| 	file)		_autoinstall_file "$2" "$3" ;;
 | |
| 	archive)	_autoinstall_archive "$2" "$3" ;;
 | |
| 	env)		_autoinstall_env "$2" ;;
 | |
| 	*)			echo "'$action' is not a valid action." ;;
 | |
| esac
 |