refactor
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
# Terminal package list for setup/term/setup.sh
|
||||
#
|
||||
# Maintenance:
|
||||
# - Add / remove packages on separate lines.
|
||||
# - Lines starting with '#' and blank lines are ignored.
|
||||
# - Use "@pacman", "@aur" or "@npm" markers to switch section.
|
||||
# - The default section is @pacman.
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
@pacman
|
||||
fish
|
||||
extra/kitty
|
||||
neovim
|
||||
openssh
|
||||
rclone
|
||||
rsync
|
||||
unison
|
||||
stow
|
||||
nodejs
|
||||
npm
|
||||
starship
|
||||
fastfetch
|
||||
tree-sitter-cli
|
||||
python
|
||||
python-pip
|
||||
unzip
|
||||
ruff
|
||||
python-ruff
|
||||
python-debugpy
|
||||
chromium
|
||||
selene
|
||||
tmux
|
||||
yazi
|
||||
zoxide
|
||||
fzf
|
||||
locate
|
||||
ttf-jetbrains-mono-nerd
|
||||
ttf-font-awesome
|
||||
|
||||
@aur
|
||||
opencode
|
||||
|
||||
@npm
|
||||
eslint_d
|
||||
@@ -0,0 +1,107 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SETUP_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PACKAGES_FILE="$SETUP_DIR/packages.txt"
|
||||
|
||||
# shellcheck source=../lib/common.sh
|
||||
source "$SETUP_DIR/../lib/common.sh"
|
||||
|
||||
# Arch installiert npm nach /usr/lib/node_modules (root-owned),
|
||||
# daher braucht der globale Install sudo.
|
||||
NPM_USE_SUDO=1
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Post-install configuration.
|
||||
# ---------------------------------------------------------------------------
|
||||
set_fish_default_shell() {
|
||||
if command -v fish >/dev/null 2>&1; then
|
||||
if [[ "$SHELL" != "/usr/bin/fish" ]]; then
|
||||
echo "Setze fish als Standard-Shell ..."
|
||||
chsh -s /usr/bin/fish
|
||||
else
|
||||
echo "fish ist bereits die Standard-Shell."
|
||||
fi
|
||||
else
|
||||
echo "Warnung: fish wurde nicht installiert; ueberspringe chsh."
|
||||
fi
|
||||
}
|
||||
|
||||
install_tmuxifier() {
|
||||
if [[ -d "$HOME/.tmuxifier" ]]; then
|
||||
echo "tmuxifier bereits installiert; fahre fort."
|
||||
else
|
||||
echo "Klone tmuxifier ..."
|
||||
git clone https://github.com/jimeh/tmuxifier.git "$HOME/.tmuxifier"
|
||||
fi
|
||||
}
|
||||
|
||||
install_tmux_tpm() {
|
||||
if [[ -x "$HOME/.config/tmux/plugins/tpm/tpm" ]]; then
|
||||
echo "tmux TPM bereits installiert; fahre fort."
|
||||
else
|
||||
echo "Klone tmux TPM ..."
|
||||
mkdir -p "$HOME/.config/tmux/plugins"
|
||||
git clone https://github.com/tmux-plugins/tpm "$HOME/.config/tmux/plugins/tpm"
|
||||
fi
|
||||
}
|
||||
|
||||
install_tmux_plugins() {
|
||||
local tpm_install="$HOME/.config/tmux/plugins/tpm/bin/install_plugins"
|
||||
if ! command -v tmux >/dev/null 2>&1; then
|
||||
echo "Warnung: tmux nicht installiert; ueberspringe Plugin-Installation (C-Space I beim ersten Start)."
|
||||
return 0
|
||||
fi
|
||||
if ! command -v git >/dev/null 2>&1; then
|
||||
echo "Warnung: git nicht installiert; ueberspringe tmux Plugin-Installation."
|
||||
return 0
|
||||
fi
|
||||
if [[ ! -f "$HOME/.config/tmux/tmux.conf" ]]; then
|
||||
echo "tmux.conf noch nicht verlinkt (stow laeuft nach setup.sh); Plugins werden beim ersten tmux-Start bzw. Re-Run installiert (C-Space I)."
|
||||
return 0
|
||||
fi
|
||||
if [[ ! -x "$tpm_install" ]]; then
|
||||
echo "Warnung: TPM install_plugins nicht gefunden; ueberspringe tmux Plugin-Installation."
|
||||
return 0
|
||||
fi
|
||||
echo "Installiere tmux-Plugins via TPM ..."
|
||||
"$tpm_install"
|
||||
}
|
||||
|
||||
add_yazi_git_plugin() {
|
||||
if command -v yazi >/dev/null 2>&1 && command -v ya >/dev/null 2>&1; then
|
||||
if ya pkg list 2>/dev/null | grep -q 'yazi-rs/plugins:git'; then
|
||||
echo "yazi git-Plugin bereits installiert; fahre fort."
|
||||
else
|
||||
echo "Fuege yazi git-Plugin hinzu ..."
|
||||
ya pkg add yazi-rs/plugins:git
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Main
|
||||
# ---------------------------------------------------------------------------
|
||||
main() {
|
||||
local -a pacman_pkgs=() aur_pkgs=() npm_pkgs=()
|
||||
|
||||
# Hinweis: multilib, yay und das System-Update werden von
|
||||
# setup/basic/setup.sh uebernommen (laeuft vor term im Makefile).
|
||||
echo "==> Lese Paketliste: $PACKAGES_FILE"
|
||||
read_packages "$PACKAGES_FILE" pacman_pkgs aur_pkgs npm_pkgs
|
||||
|
||||
install_all_pkgs pacman_pkgs aur_pkgs npm_pkgs
|
||||
|
||||
set_fish_default_shell
|
||||
install_tmuxifier
|
||||
install_tmux_tpm
|
||||
install_tmux_plugins
|
||||
add_yazi_git_plugin
|
||||
|
||||
echo "==> Aktualisiere locate-Datenbank ..."
|
||||
sudo updatedb
|
||||
|
||||
echo "Fertig. Starte ein neues Terminal, damit fish und die Umgebung greifen."
|
||||
}
|
||||
|
||||
main
|
||||
Reference in New Issue
Block a user