Skip to content

hyperupcall-projects/setup.sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

setup.sh

setup.sh simplifies installing software for Linux.

Below is an example. It can be placed at, say, ~/scripts/setup/vscode.sh.

#!/usr/bin/env bash

source ~/.dotfiles/vendor/setup/setup.sh

declare -g g_name='VSCode and VSCode Insiders'

main() {
	util.install_by_setup "$@"
}

install.arch() {
	yay -S visual-studio-code-bin visual-studio-code-insiders-bin
}

install.debian() {
	local gpg_file="/etc/apt/keyrings/microsoft.asc"

	pkg.add_apt_key \
		'https://packages.microsoft.com/keys/microsoft.asc' \
		"$gpg_file"

	pkg.add_apt_repository \
		'/etc/apt/sources.list.d/vscode.sources' "
			Types: deb
			URIs: https://packages.microsoft.com/repos/code
			Suites: stable
			Components: main
			Architectures: $(dpkg --print-architecture)
			signed-by: $gpg_file"

	sudo apt-get -y update
	sudo apt-get -y install code code-insiders
}

install.ubuntu() {
	install.debian "$@"
}

install.fedora() {
	sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
	printf "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc\n" \
		| sudo tee '/etc/yum.repos.d/vscode.repo' >/dev/null

	sudo dnf -y update
	sudo dnf -y install code code-insiders
}

install.opensuse() {
	sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
	printf "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc\n" \
		| sudo tee '/etc/zypp/repos.d/vscode.repo' >/dev/null

	sudo zypper refresh
	sudo zypper -n install code code-insiders
}

installed() {
	command -v code &>/dev/null && command -v code-insiders &>/dev/null
}

util.if_file_sourced || _setup "$@"

Some APIs are more experimental:

configure() {
	util.write_shellfile 'dircolors' \
		--bash 'eval "$(dircolors -b "$XDG_CONFIG_HOME/dircolors/dir_colors")"' \
		--zsh 'eval "$(dircolors -b "$XDG_CONFIG_HOME/dircolors/dir_colors")"' \
		--tcsh 'eval "$(dircolors -c "$XDG_CONFIG_HOME/dircolors/dir_colors")"'
}

caveats() {
	cat <<"EOF"
To  fix the scollbar, write to `~/.config/gtk-4.0/settings.ini`:

gtk-overlay-scrolling=false
gtk-primary-button-warps-slider = false

More information: https://github.com/dbeaver/dbeaver/issues/10950
EOF
}

See more examples here, here, and here.

This isn't quite ready to be used yet. I have to remove hardcoded ~/.dotfiles paths and vendor dependencies like bash-core and bash-term in this repository.

About

Install Linux software easily.

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages