diff --git a/bootstrap/install_packages.sh b/bootstrap/install_packages.sh index 19a2a6f..86c1315 100755 --- a/bootstrap/install_packages.sh +++ b/bootstrap/install_packages.sh @@ -7,9 +7,10 @@ # DESCRIPTION: Display usage information for this script. # PARAMETERS: see usage function #============================================================================== -packages_repo="${BOOTSTRAP_PACKAGES:-$(grep -e ' R ' "$PKG_TSV_FILE" | cut -f1 -d' ' )}" -packages_aur="${BOOTSTRAP_PACKAGES_AUR:-$(grep -e ' A ' "$PKG_TSV_FILE" | cut -f1 -d' ' )}" PKG_TSV_FILE=${PKG_TSV_FILE:-bootstrap/packages_stable.tsv} +packages_repo="${BOOTSTRAP_PACKAGES:-$(grep -e ' R ' "$PKG_TSV_FILE" | cut -f1 -d' ')}" +packages_aur="${BOOTSTRAP_PACKAGES_AUR:-$(grep -e ' A ' "$PKG_TSV_FILE" | cut -f1 -d' ')}" +packages_pipx="${BOOTSTRAP_PACKAGES_PIPX:-$(grep -e ' P ' "$PKG_TSV_FILE" | cut -f1,5 -d' ')}" main() { local cmd="" @@ -69,6 +70,31 @@ install_packages() { fi } +install_pipx() { + if type pipx >/dev/null 2>&1; then + echo "Existing pipx installation found .........................................." + return + fi + if "$unattended"; then + paru -S --noconfirm python-pipx + else + paru -S python-pipx + fi +} + +install_pipx_pkgs() { + while IFS= read -r line; do + if [ -z "$line" ]; then return; fi + prog=$(echo "$line" | cut -f1 -d' ') + pipx install "$prog" + + injections=$(echo "$line" | cut -f2 -d' ') + for inject_args in ${injections//,/ }; do + pipx inject "$prog" "$inject_args" + done + done <<<"$packages_pipx" +} + install() { unattended=$1 echo "Beginning package bootstrap ..............................................." @@ -78,6 +104,11 @@ install() { update_repos "$unattended" install_packages "$unattended" echo "Done ......................................................................" + echo "Installing pipx ..........................................................." + install_pipx + echo "Installing pipx packages .................................................." + install_pipx_pkgs + echo "Done ......................................................................" } main "$@" diff --git a/bootstrap/packages_stable.tsv b/bootstrap/packages_stable.tsv index e78a7f0..e92a3a5 100644 --- a/bootstrap/packages_stable.tsv +++ b/bootstrap/packages_stable.tsv @@ -25,7 +25,9 @@ bash-completion Programmable completion for the bash shell R bash-language-server Bash language server implementation based on Tree Sitter and its grammar for Bash R bat Cat clone with syntax highlighting and git integration R bc An arbitrary precision calculator language R +beancount A personal double entry accounting and budgeting software P beancount-categorizer,beancount-dkb,fava,python-magic,smart-importer bearssl Implementation of the SSL/TLS protocol (RFC 5246) written in C R +beets Organize your music collection from the command line P beetcamp bemoji-git Emoji picker that remembers your favorites. A bibclean BibTeX and Scribe bibliography prettyprinter and syntax checker A biber A Unicode-capable BibTeX replacement for biblatex users R @@ -61,6 +63,7 @@ dust A more intuitive version of du in rust R efm-langserver General purpose Language Server A enca Charset analyser and converter R entr Run arbitrary commands when files change R +euporie View and work with ipnb Python notebooks from the cli P exa ls replacement R exercism-bin Command line client for exercism.io A exfat-utils Utilities for exFAT file system R @@ -107,6 +110,7 @@ imv Image viewer for Wayland and X11 R intel-ucode Microcode update files for Intel CPUs R iputils Network monitoring tools, including ping R ipython An enhanced Interactive Python shell. R +isbntools A variety of tools to work with isbn addresses P iucode-tool Tool to manipulate IntelĀ® IA-32/X86-64 microcode bundles R iwd Internet Wireless Daemon R jiq-bin Interactive JSON query tool using jq expressions A @@ -148,6 +152,7 @@ maim Utility to take a screenshot using imlib2 R mako Lightweight notification daemon for Wayland R man-db A utility for reading man pages R man-pages Linux man pages R +markdown-anki-decks Construct and modify anki decks directly with markdown P markdownlint-cli MarkdownLint Command Line Interface A masterpdfeditor-free A complete solution for creation and editing PDF files - Free version without watermark A mbsync-git free (GPL) mailbox synchronization program A @@ -198,6 +203,7 @@ offpunk-git Fork of the command-line Gemini client AV-98 with added offline capa oh-my-zsh-git A community-driven framework for managing your zsh configuration. Includes 180+ optional plugins and over 120 themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community A os-prober Utility to detect other OSes on a set of drives R pacman-contrib Contributed scripts and tools for pacman systems R +papis-tui A tui interface for papis bibliography manager P whoosh parallel A shell tool for executing jobs in parallel R parsec-bin Remotely connect to a gaming pc for a low latency remote computing experience A paru-bin Feature packed AUR helper A @@ -342,9 +348,9 @@ xdg-user-dirs Manage user directories like ~/Desktop and ~/Music R xsv A CLI for indexing, slicing, analyzing, splitting and joining CSV files R yaml-language-server YAML Language Server R yarn Fast, reliable, and secure dependency management R -yubikey-manager Python library and command line tool for configuring a YubiKey R yt-dlp A youtube-dl fork with additional features and fixes R ytfzf A POSIX script to find and watch youtube videos from the terminal R +yubikey-manager Python library and command line tool for configuring a YubiKey R zathura-cb Adds comic book support to zathura R zathura-djvu DjVu support for Zathura R zathura-pdf-mupdf PDF support for Zathura (MuPDF backend) (Supports PDF, ePub, and OpenXPS) R