[UPDATE] Use bootstrap and Makefile installation
Instead of running `install.sh` to link all my packages, I split the configuration into its CLI components and packages that need a Xorg display server set-up. This uses the `bootstrap.sh` script to make sure the needed dependencies are installed. The `Makefile` can install all the packages or CLI ones only.
This commit is contained in:
parent
13e2ea1b6a
commit
8bedc06072
118
Makefile
Normal file
118
Makefile
Normal file
|
@ -0,0 +1,118 @@
|
|||
CLI_PACKAGES := \
|
||||
bash \
|
||||
flake8 \
|
||||
git \
|
||||
isort \
|
||||
ranger \
|
||||
scripts \
|
||||
shell \
|
||||
vim \
|
||||
zsh \
|
||||
|
||||
VISUAL_PACKAGES := \
|
||||
X \
|
||||
desktop \
|
||||
dunst \
|
||||
i3 \
|
||||
i3blocks \
|
||||
redshift \
|
||||
rofi \
|
||||
termite \
|
||||
tridactyl \
|
||||
wallpapers \
|
||||
|
||||
CLI_DEPENDENCIES := \
|
||||
aur/bitwarden-cli \
|
||||
aur/cppreference \
|
||||
aur/global \
|
||||
aur/stdman \
|
||||
aur/zsh-fast-syntax-highlighting-git \
|
||||
community/bat \
|
||||
community/git-lfs \
|
||||
community/lesspipe \
|
||||
community/mosh \
|
||||
community/pandoc \
|
||||
community/shellcheck \
|
||||
community/shfmt \
|
||||
community/stow \
|
||||
community/tig \
|
||||
community/zsh-completions \
|
||||
core/archlinux-keyring \
|
||||
core/openssh \
|
||||
extra/bash-completion \
|
||||
extra/ctags \
|
||||
extra/git \
|
||||
extra/imagemagick \
|
||||
extra/keychain \
|
||||
extra/networkmanager \
|
||||
extra/zsh \
|
||||
|
||||
VISUAL_DEPENDENCIES := \
|
||||
aur/bitwarden-rofi \
|
||||
aur/i3-battery-popup-git \
|
||||
aur/i3blocks-contrib-git \
|
||||
aur/networkmanager-dmenu-git \
|
||||
aur/spotify \
|
||||
community/dunst \
|
||||
community/firefox-tridactyl \
|
||||
community/playerctl \
|
||||
community/redshift \
|
||||
community/xautolock \
|
||||
community/xsel \
|
||||
community/zathura \
|
||||
community/zathura-cb \
|
||||
community/zathura-djvu \
|
||||
community/zathura-pdf-poppler \
|
||||
community/zathura-ps \
|
||||
extra/firefox \
|
||||
extra/nm-connection-editor \
|
||||
extra/thunderbird \
|
||||
extra/vlc \
|
||||
|
||||
RUST_DEPENDENCIES := \
|
||||
clippy \
|
||||
rustfmt \
|
||||
|
||||
STOW_TARGET := $(HOME)
|
||||
STOW = stow -t $(STOW_TARGET) -R -v
|
||||
|
||||
.PHONY: all
|
||||
all: install
|
||||
|
||||
# Install packages and their dependencies
|
||||
.PHONY: install-cli
|
||||
install-cli: install-cli-deps
|
||||
install-cli: $(addprefix stow-,$(CLI_PACKAGES))
|
||||
install-cli: rust
|
||||
|
||||
.PHONY: install
|
||||
install: install-cli
|
||||
install: install-visual-deps
|
||||
install: $(addprefix stow-,$(VISUAL_PACKAGES))
|
||||
|
||||
.PHONY: install-cli-deps
|
||||
install-cli-deps:
|
||||
yay -S $(CLI_DEPENDENCIES)
|
||||
|
||||
.PHONY: install-visual-deps
|
||||
install-visual-deps:
|
||||
yay -S $(VISUAL_DEPENDENCIES)
|
||||
|
||||
# Installing configuration packages
|
||||
stow-%: %
|
||||
$(STOW) $<
|
||||
|
||||
stow-scripts: STOW_TARGET=~/.scripts
|
||||
stow-scripts: scripts
|
||||
mkdir -p $(STOW_TARGET)
|
||||
$(STOW) $<
|
||||
|
||||
stow-vim: vim
|
||||
$(STOW) $<
|
||||
vim +PlugInstall
|
||||
|
||||
# Development related installations
|
||||
.PHONY: rust
|
||||
rust:
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
rustup component add $(RUST_DEPENDENCIES)
|
20
bootstrap.sh
Executable file
20
bootstrap.sh
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Exit on errors
|
||||
set -e
|
||||
|
||||
# Install pre-requisite packages for installing packages and connecting
|
||||
prerequisite() {
|
||||
sudo pacman -S base base-devel git stow mosh
|
||||
}
|
||||
|
||||
# Install the yay AUR helper
|
||||
install-yay() {
|
||||
git clone https://aur.archlinux.org/yay.git
|
||||
pushd yay || exit 1
|
||||
makepkg -si
|
||||
popd || exit 1
|
||||
}
|
||||
|
||||
prerequisite
|
||||
install-yay
|
33
install.sh
33
install.sh
|
@ -1,33 +0,0 @@
|
|||
#! /usr/bin/sh
|
||||
|
||||
# Configuration files
|
||||
stow -t ~ X
|
||||
stow -t ~ bash
|
||||
stow -t ~ dunst
|
||||
stow -t ~ emacs
|
||||
stow -t ~ flake8
|
||||
stow -t ~ git
|
||||
stow -t ~ i3
|
||||
stow -t ~ i3blocks
|
||||
stow -t ~ isort
|
||||
stow -t ~ ranger
|
||||
stow -t ~ redshift
|
||||
stow -t ~ rofi
|
||||
stow -t ~ termite
|
||||
stow -t ~ tridactyl
|
||||
stow -t ~ vim
|
||||
stow -t ~ zsh
|
||||
|
||||
# Create the directory if needed
|
||||
mkdir -p ~/.scripts
|
||||
# Scripts must be in their own directory
|
||||
stow -t ~/.scripts scripts/
|
||||
|
||||
# Common shell files
|
||||
stow -t ~ shell/
|
||||
|
||||
# Wallpapers
|
||||
stow -t ~ wallpapers/
|
||||
|
||||
# Symlink the '.desktop' files (btmenu needs one)
|
||||
stow -t ~ desktop
|
Loading…
Reference in a new issue