112 lines
3.6 KiB
Bash
112 lines
3.6 KiB
Bash
|
#!/bin/sh
|
||
|
set -e
|
||
|
|
||
|
START_DIR=$(pwd)
|
||
|
INITENV_DIR=$(dirname "$0")
|
||
|
ARCH=$(uname -m)
|
||
|
if [ "$ARCH" = "x86_64" ]; then
|
||
|
ARCH_GO="amd64"
|
||
|
fi
|
||
|
if [ "$ARCH" = "aarch64" ]; then
|
||
|
ARCH_GO="arm64"
|
||
|
fi
|
||
|
|
||
|
setup_configs() {
|
||
|
mkdir -p $HOME/.config
|
||
|
mkdir -p $HOME/.ssh
|
||
|
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDtHnwPdfiqbqK+kh9DrVpNfPLuukBFvPbaZNhH1Ih59m0NxpiqMnfUeKTvBz9tHixcGCZ59jj8Lhy6egB5SXQBm2YUadfQKk5hNPJaRuBLP2Vj35PO6E6HZfx3brPumdDCqL35G1I/8KSryQF5q7u+VSKVkjQCA5Cdaz8IOtU9kfyzRPUYXIxvSlCVFjuviBVerjBopa9HwrzhYq5PTftmyuWOiV8nzxhlcAju2Xe8yvZJcyusFABmjNimY366pQYAaXX2Uxi4nP4C8WL+axYliLV/FxAZSpk51LP9cfQkHGV7jEZQzf/M02DPlo7NR7VRULaJlWaVYulT/LbuQecpr+KimaB62GkWbjX5tG/dc3RsL0yz+UcrYD2bYd0PZpakIvnwQOaMxrJYyWOZrTsw7X/lBWNb1M62xN828pZ3PfqGkWGzVaH09Jb24U4yHyYrfAU/RKiHnvVyw2ISl3SCz20fhiIGOV7lhDtTyVOLau16AluQDz0U3fcYV2Eipa4euOf7sShoFsJg8N5R9EG0ZvmQathEN856ViaJZE3SIkvyQ5epngrc1IdZPGH/4fQabywgiEa0vk6ZDW7RuvZXztpHDWZpmd7zXL98vSplvEYuT1VFk9DwAIcbGIK2Xwfedt1GDsCsdGY+eZ0LZMCDAa0DPTydjic7/6xVl78iYQ== emilisbliudzius@gmail.com" >$HOME/.ssh/authorized_keys
|
||
|
}
|
||
|
|
||
|
setup_Xorg() {
|
||
|
mkdir -p $HOME/.config/herbstluftwm/
|
||
|
cp $INITENV_DIR/Xorg/autostart $HOME/.config/herbstluftwm/
|
||
|
cp $INITENV_DIR/Xorg/.xinitrc $HOME/
|
||
|
}
|
||
|
|
||
|
setup_fishe() {
|
||
|
cp -r $INITENV_DIR/fish $HOME/.config/
|
||
|
}
|
||
|
|
||
|
setup_golang() {
|
||
|
mkdir $INITENV_DIR/go-tmp
|
||
|
cd $INITENV_DIR/go-tmp
|
||
|
GO_VERSION=$(curl https://go.dev/VERSION\?m=text)
|
||
|
GO_ARCHIVE="$GO_VERSION.linux-$ARCH_GO.tar.gz"
|
||
|
wget "https://dl.google.com/go/$GO_ARCHIVE"
|
||
|
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf $GO_ARCHIVE
|
||
|
rm $GO_ARCHIVE
|
||
|
cd $START_DIR
|
||
|
}
|
||
|
|
||
|
setup_rust() {
|
||
|
wget https://sh.rustup.rs -O $INITENV_DIR/rustup.sh
|
||
|
chmod +x $INITENV_DIR/rustup.sh
|
||
|
sh $INITENV_DIR/rustup.sh -yq
|
||
|
rm $INITENV_DIR/rustup.sh
|
||
|
}
|
||
|
|
||
|
setup_pkgs() {
|
||
|
if [ ! -f "/etc/arch-release" ]; then
|
||
|
echo "Not on arch, skipping installing packages"
|
||
|
return
|
||
|
fi
|
||
|
|
||
|
setup_aur
|
||
|
|
||
|
yay --noconfirm -S ttf-twemoji-color
|
||
|
sudo pacman -Sy --noconfirm fish bat code vim flameshot herbstluftwm \
|
||
|
kitty xorg-server xorg-xrandr xorg-xinit ttf-dejavu ttf-fira-code ttf-hanazono \
|
||
|
ttf-liberation ttf-liberation ttf-liberation wget man \
|
||
|
inetutils tar xz unzip bemenu-x11 bemenu firefox base-devel pipewire
|
||
|
}
|
||
|
|
||
|
setup_aur() {
|
||
|
sudo pacman --noconfirm -Sy git autoconf
|
||
|
mkdir -p $INITENV_DIR/yay-bin
|
||
|
git clone https://aur.archlinux.org/yay-bin.git $INITENV_DIR/yay-bin
|
||
|
cd $INITENV_DIR/yay-bin
|
||
|
makepkg --noconfirm -si
|
||
|
cd $START_DIR
|
||
|
rm -rf $INITENV_DIR/yay-bin
|
||
|
}
|
||
|
|
||
|
setup_vscode() {
|
||
|
yay --noconfirm -Sy code-marketplace
|
||
|
mkdir -p $HOME/.config/Code\ -\ OSS/User/
|
||
|
cp $INITENV_DIR/vscode/settings.json $HOME/.config/Code\ -\ OSS/User/
|
||
|
cp $INITENV_DIR/vscode/keybindings.json $HOME/.config/Code\ -\ OSS/User/
|
||
|
|
||
|
# Extensions
|
||
|
extensions="golang.Go rust-lang.rust-analyzer vadimcn.vscode-lldb
|
||
|
bungcip.better-toml eamodio.gitlens vscodevim.vim donjayamanne.githistory
|
||
|
ziyasal.vscode-open-in-github"
|
||
|
for ext in $extensions; do
|
||
|
code --install-extension $ext --force
|
||
|
done
|
||
|
|
||
|
# Go tools for vscode
|
||
|
/usr/local/go/bin/go install github.com/cweill/gotests/...@latest
|
||
|
/usr/local/go/bin/go install github.com/fatih/gomodifytags@latest
|
||
|
/usr/local/go/bin/go install github.com/josharian/impl@latest
|
||
|
/usr/local/go/bin/go install github.com/haya14busa/goplay/cmd/goplay@latest
|
||
|
/usr/local/go/bin/go install github.com/go-delve/delve/cmd/dlv@latest
|
||
|
/usr/local/go/bin/go install honnef.co/go/tools/cmd/staticcheck@latest
|
||
|
/usr/local/go/bin/go install golang.org/x/tools/gopls@latest
|
||
|
}
|
||
|
|
||
|
setup_finisher() {
|
||
|
fish $INITENV_DIR/post-install.fish
|
||
|
sudo chsh -s $(which fish) $USER
|
||
|
echo "all done."
|
||
|
fish
|
||
|
}
|
||
|
|
||
|
setup_configs
|
||
|
setup_pkgs
|
||
|
setup_rust
|
||
|
setup_golang
|
||
|
setup_fishe
|
||
|
setup_Xorg
|
||
|
setup_vscode
|
||
|
setup_finisher
|