master_setup/mastersetup.bash
2025-03-07 12:38:15 -06:00

123 lines
No EOL
3.5 KiB
Bash

#!/bin/bash
# standard lactazora script stub
set -eo pipefail #these can cause problems when you want stuff to keep going
if [[ -n "${BASHD_DEBUG}" ]]; then # a inevitability that this will be used
set -x
fi
trap cleanup EXIT # A little more robust cleanup
# trap errors and set the ERR trap
trap 'echo -e "\nERROR: $BASH_COMMAND\nFILE: ${BASH_SOURCE[0]}\nLINE: ${BASH_LINENO[0]}\n" >&2; exit 1' ERR
cleanup() {
# We can clean up any temp files or what nots, but for now a place holder
true
}
# end stub
# Will setup anything debian based
# First step that always needs to happen
sudo apt update
sudo apt upgrade -y
# install curl,git, and wget
sudo apt install curl git wget -y # at worst this does nothing
# install the fun stuff
# deepseek suggested to make the code to grab a file a function due to repeated use
install_from_url() { # I agree this will work fine
local url=$1
local install_cmd=$2
local temp_file=$(mktemp)
curl -fsSL "$url" -o "$temp_file"
chmod 755 "$temp_file"
eval "$install_cmd $temp_file"
rm "$temp_file"
}
# We begin with homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# inject homebrew into .bashrc
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
# now pacstall
sudo bash -c "$(curl -fsSL https://pacstall.dev/q/install)"
# now makedeb
# we need a environment variable here
export MAKEDEB_RELEASE="makedeb"
bash -ci "$(wget -qO - 'https://shlink.makedeb.org/install')"
# Thats it for top level stuff now we dive a little deeper
# Now floorp
curl -fsSL https://ppa.floorp.app/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/Floorp.gpg
sudo curl -sS --compressed -o /etc/apt/sources.list.d/Floorp.list 'https://ppa.floorp.app/Floorp.list'
sudo apt update
sudo apt install floorp -y
# now let's do signal
# 1. Install our official public software signing key:
wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null
# 2. Add our repository to your list of repositories:
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' |\
sudo tee /etc/apt/sources.list.d/signal-xenial.list
# 3. Update your package database and install Signal:
sudo apt update && sudo apt install signal-desktop -y
# now let's do discord
wget 'https://discord.com/api/download?platform=linux&format=deb' -O discord.deb
sudo apt install ./discord.deb -y
# now let's do telegram
wget https://td.telegram.org/tlinux/tsetup.5.11.1.tar.xz -O tsetup.5.11.1.tar.xz
tar -xvf tsetup.5.11.1.tar.xz
# Now lets do kopia
curl -s https://kopia.io/signing-key | sudo gpg --dearmor -o /etc/apt/keyrings/kopia-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kopia-keyring.gpg] http://packages.kopia.io/apt/ stable main" | sudo tee /etc/apt/sources.list.d/kopia.list
sudo apt update
sudo apt install kopia -y
sudo apt install kopia-ui -y
# now lets do steam
wget https://cdn.cloudflare.steamstatic.com/client/installer/steam.deb -O steam.deb
sudo apt install ./steam.deb -y
# that is it for now, maybe later add xanmod or openrc
# Now lets add NVM
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source $HOME/.bashrc
nvm install --lts
# Now bun
curl -fsSL https://bun.sh/install | bash