bootstrap: Switch package list to tsv
Package list is now a single tab separated list. That should make several automations in the future much simpler. The table is built as follows: `Name Description Source Target` with one line per package. Source denotes official repositories or AUR, and target is kept for future potential of creating different deployments per target automatically (e.g. different package list for desktop and server, and so on). There is an updater script `bootstrap/update_package_list.sh` which will automatically populate the table, removing uninstalled packages, adding new ones and (making its best attempt to be) keeping the selected targets as they are. The git commit hook comparing installed and committed packages has also been rewritten to use the new table and be a little simpler overall. Fixes #2.
This commit is contained in:
parent
0a9271ffe8
commit
280fab6ad3
6 changed files with 374 additions and 356 deletions
|
@ -1,51 +1,19 @@
|
|||
#!/usr/bin/env sh
|
||||
#!/usr/bin/env bash
|
||||
|
||||
COMMIT_MSG_FILE="$1"
|
||||
COMMIT_SOURCE="$2"
|
||||
|
||||
BOOTSTRAPDIR="bootstrap"
|
||||
pkgfileloc="$(git rev-parse --show-toplevel)/$BOOTSTRAPDIR/packages.txt"
|
||||
pkgignoreloc="$(git rev-parse --show-toplevel)/$BOOTSTRAPDIR/packages_ignore.txt"
|
||||
listgen="paru"
|
||||
pkg_committed="$(cat $(git rev-parse --show-toplevel)/$BOOTSTRAPDIR/packages.tsv | tail +2 | cut -f1 | sort)"
|
||||
pkg_onsystem=$(pacman -Qqett | grep -v "$(pacman -Qqg base-devel)" | sort)
|
||||
|
||||
err() {
|
||||
printf "\x1b[33mCAUTION:\x1b[0m %s\n" "$*"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ ! -f "$pkgfileloc" ]; then
|
||||
err "File not found - $pkgfileloc, can not determine package differences!"
|
||||
fi
|
||||
|
||||
if ! type "$listgen" >/dev/null 2>&1; then
|
||||
err "List generator not installed on machine, can not reliably determine package differences!"
|
||||
fi
|
||||
|
||||
# get commited packages, remove empty lines
|
||||
# and lines beginning with # to allow comments
|
||||
pkgcommited=$(mktemp)
|
||||
sed -e '/^[#$]/d' <"$pkgfileloc" | sort >"$pkgcommited"
|
||||
|
||||
# get packages on this machine
|
||||
# q removes extraneous info
|
||||
# e only lists explicitly installed
|
||||
# tt removes those that are depended on, but NOT those optionally depended on
|
||||
pkgcurrent=$("$listgen" -Qqett | sort)
|
||||
# remove those listed in package_ignore.txt
|
||||
if [ -f "$pkgignoreloc" ]; then
|
||||
pkgcurrent=$(echo "$pkgcurrent" | comm -23 - "$pkgignoreloc")
|
||||
fi
|
||||
|
||||
# compare the lists, list differences
|
||||
result=$(echo "$pkgcurrent" | comm -3 - "$pkgcommited")
|
||||
|
||||
# get files only in repo (field1), and only on machine (field2)
|
||||
added=$(echo "$result" | cut -f1 | sed -e '/^$/d')
|
||||
removed=$(echo "$result" | cut -s -f2)
|
||||
# get files only in repo, and only on machine
|
||||
only_committed=$(comm -23 <(echo "$pkg_committed") <(echo "$pkg_onsystem"))
|
||||
only_onsystem=$(comm -13 <(echo "$pkg_committed") <(echo "$pkg_onsystem"))
|
||||
|
||||
# if we have no changes, do nothing
|
||||
if [ -n "$added" ] || [ -n "$removed" ]; then
|
||||
text=$(printf "\-- PACKAGE DIFFERENCES TO COMMITED LIST FOUND --\nPackages NOT YET in repo:\n%s\n\nPackages ONLY in repo:%s\n" "$added" "$removed" | sed 's/^/# /gm')
|
||||
if [ -n "$only_onsystem" ] || [ -n "$only_committed" ]; then
|
||||
text=$(printf "\-- PACKAGE CHANGES --\nPackages on machine but not committed:\n%s\n\nPackages committed but not on machine:\n%s\n" "$only_onsystem" "$only_committed" | sed 's/^/# /gm')
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
The bootstrapping module mainly concerns the setup of the repository itself -- installation of packages, setting up basic options and maintenance scripts.
|
||||
|
||||
* installs general list of packages, listed [here](bootstrap/packages.txt)
|
||||
* if githooks are enabled (either through install script, or manually) will compare installed packages with those on the package list on each commit and warn user about differences (skipping those on the [ignore](bootstrap/packages_ignore.txt) list).
|
||||
* contains a simple alias `dotlink` which allows quickly re-linking dotfiles when they have been changed. This is useful to invoke when files have been removed or added and need to be sym-linked by stow again (only works for `~/.dotfiles` dot directory).
|
||||
* installs general list of packages, listed [here](bootstrap/packages.tsv)
|
||||
* if githooks are enabled (either through install script, or manually) will compare installed packages with those on the package list on each commit and warn user about differences
|
||||
* contains a simple alias `dotlink` which allows quickly re-linking dotfiles when they have been changed. This is useful to invoke when files have been removed or added and need to be sym-linked by stow again (only works for `~/.dotfiles` dot directory)
|
||||
* contains an `update_package_list.sh` script which I can use to quickly repopulate the list of explicitly installed packages, noting down their source (repositories or AUR) and retaining their target, if I set any (only works for `~/.dotfiles` dot directory)
|
||||
|
||||
|
|
296
bootstrap/packages.tsv
Normal file
296
bootstrap/packages.tsv
Normal file
|
@ -0,0 +1,296 @@
|
|||
Name Description Source Target
|
||||
acpid A daemon for delivering ACPI power management events with netlink support R
|
||||
activitywatch-bin Log what you do on your computer. Simple, extensible, no third parties. A
|
||||
afew Initial tagging script for notmuch mail R
|
||||
alias-tips-git An oh-my-zsh plugin to help remembering those aliases you defined once A
|
||||
alsa-utils Advanced Linux Sound Architecture - Utilities R
|
||||
an2linuxserver-git Sync android notifications encrypted to a linux desktop with tcp or bluetooth A
|
||||
android-sdk-platform-tools Platform-Tools for Google Android SDK (adb and fastboot) A
|
||||
anki Helps you remember facts (like words/phrases in a foreign language) efficiently A
|
||||
ansible Official assortment of Ansible collections R
|
||||
ansible-lint Checks playbooks for practices and behaviour that could potentially be improved. R
|
||||
arch-wiki-lite The wiki without html. 1/9 as big, easily searched and viewable on console. R
|
||||
arduino Arduino prototyping platform SDK R
|
||||
arduino-avr-core Arduino AVR core with upstream avr-gcc and avrdude R
|
||||
arduino-cli Arduino command line interface R
|
||||
asciinema Record and share terminal sessions R
|
||||
asix-ax88179-dkms A kernel module for ASIX AX88178A AX88179 USB 3.0 network adapters A
|
||||
aspell-de German dictionary for aspell R
|
||||
aspell-en English dictionary for aspell R
|
||||
atool A script for managing file archives of various types A
|
||||
awesome Highly configurable framework window manager R
|
||||
barrier Open-source KVM software based on Synergy (GUI) R
|
||||
bash-bats Bash Automated Testing System R
|
||||
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
|
||||
bearssl Implementation of the SSL/TLS protocol (RFC 5246) written in C A
|
||||
beets Flexible music library manager and tagger R
|
||||
bibclean BibTeX and Scribe bibliography prettyprinter and syntax checker A
|
||||
biber A Unicode-capable BibTeX replacement for biblatex users R
|
||||
bibtool Command line manipulation of BibTeX files. A
|
||||
bind A complete, highly portable implementation of the DNS protocol R
|
||||
bluez Daemons for the bluetooth protocol stack R
|
||||
bluez-utils Development and debugging utilities for the bluetooth protocol stack R
|
||||
brightnessctl Lightweight brightness control tool R
|
||||
busted Elegant Lua unit testing (CLI) R
|
||||
caddy Fast web server with automatic HTTPS R
|
||||
calcurse A text-based personal organizer. R
|
||||
catdoc A convertor for Microsoft Word, Excel, PowerPoint and RTF Files to text R
|
||||
clipman A simple clipboard manager for Wayland A
|
||||
crda Central Regulatory Domain Agent for wireless networks R
|
||||
cups-pk-helper A helper that makes system-config-printer use PolicyKit R
|
||||
dbus-broker Linux D-Bus Message Broker R
|
||||
dcnnt Yet another tool to connect Android phone with desktop similar to KDE Connect A
|
||||
dconf-editor dconf Editor R
|
||||
dell-command-configure Configure various BIOS features on Dell laptops A
|
||||
devour Window Manager agnostic swallowing feature for terminal emulators A
|
||||
dhcpcd RFC2131 compliant DHCP client daemon R
|
||||
diff-so-fancy Good-looking diffs with diff-highlight and more R
|
||||
docker Pack, ship and run any application as a lightweight container R
|
||||
docker-compose Fast, isolated development environments using Docker R
|
||||
docx2txt Recovers text from DOCX files, with good formatting. R
|
||||
dos2unix Text file format converter R
|
||||
duf Disk Usage/Free Utility R
|
||||
dunst Customizable and lightweight notification-daemon R
|
||||
dust A more intuitive version of du in rust R
|
||||
efm-langserver General purpose Language Server R
|
||||
element-desktop Glossy Matrix collaboration client — desktop version. R
|
||||
entr Run arbitrary commands when files change R
|
||||
evince Document viewer (PDF, PostScript, XPS, djvu, dvi, tiff, cbr, cbz, cb7, cbt) R
|
||||
exa ls replacement R
|
||||
fasd Command-line productivity booster, offers quick access to files and directories R
|
||||
fd Simple, fast and user-friendly alternative to find R
|
||||
ffmpegthumbnailer Lightweight video thumbnailer that can be used by file managers R
|
||||
firefox Standalone web browser from mozilla.org R
|
||||
fvextra Extensions to fancyvrb, including automatic line breaking and improved math mode R
|
||||
fwupd Simple daemon to allow session software to update firmware R
|
||||
fzf-tab-git Replace zsh's default completion selection menu with fzf. R
|
||||
gallery-dl Command-line program to download image-galleries and collections from several image hosting sites A
|
||||
gimp GNU Image Manipulation Program R
|
||||
git-lfs Git extension for versioning large files R
|
||||
gitea-tea-git Painless self-hosted Git service.. A
|
||||
gitlint Git commit message linter A
|
||||
gk6x-bin Configure keys, macros, and lighting on GK6X keyboards (GK64, GK84, GK61, etc) A
|
||||
glances CLI curses-based monitoring tool R
|
||||
glfw-wayland A free, open source, portable framework for graphical application development (wayland) R
|
||||
glow Markdown renderer for the CLI R
|
||||
gnome-keyring Stores passwords and encryption keys R
|
||||
gnu-netcat GNU rewrite of netcat, the network piping application R
|
||||
gnuplot Plotting package which outputs to X11, PostScript, PNG, GIF, and others R
|
||||
go Core compiler tools for the Go programming language R
|
||||
go-ipfs A peer-to-peer hypermedia distribution protocol R
|
||||
gomuks A terminal based Matrix client written in Go A
|
||||
gopls Language server for Go programming language R
|
||||
gotty-bin Simple command line tool that turns your CLI tools into web applications. A
|
||||
grim Screenshot utility for Wayland R
|
||||
grub GNU GRand Unified Bootloader (2) R
|
||||
gsimplecal Simple and lightweight GTK calendar R
|
||||
gst-libav Multimedia graph framework - libav plugin R
|
||||
gst-plugins-bad Multimedia graph framework - bad plugins R
|
||||
gstreamer-vaapi Multimedia graph framework - vaapi plugin R
|
||||
gucharmap Gnome Unicode Charmap R
|
||||
haveged Entropy harvesting daemon using CPU timings R
|
||||
heimdall Tool suite used to flash firmware (ROMs) onto Samsung Galaxy S devices R
|
||||
hplip Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet R
|
||||
htop Interactive process viewer R
|
||||
hugo Fast and Flexible Static Site Generator in Go R
|
||||
iftop Display bandwidth usage on an interface R
|
||||
imapfilter A mail filtering utility for processing IMAP mailboxes A
|
||||
intel-ucode Microcode update files for Intel CPUs R
|
||||
iputils Network monitoring tools, including ping R
|
||||
ipython An enhanced Interactive Python shell. R
|
||||
iucode-tool Tool to manipulate Intel® IA-32/X86-64 microcode bundles R
|
||||
jabref-latest GUI frontend for BibTeX, written in Java; latest main (master) version from git A
|
||||
jiq jid on jq A
|
||||
jpdftweak A Swiss Army Knife GUI application for PDF documents A
|
||||
jrnl Collect your thoughts and notes without leaving the command line R
|
||||
keyd A key remapping daemon for linux. A
|
||||
khal CLI calendar application build around CalDAV R
|
||||
khard Console CardDAV client R
|
||||
kitty A modern, hackable, featureful, OpenGL-based terminal emulator R
|
||||
lazygit Simple terminal UI for git commands R
|
||||
libdvdcss Portable abstraction library for DVD decryption R
|
||||
libqalculate Multi-purpose desktop calculator R
|
||||
libreoffice-fresh LibreOffice branch which contains new features and program enhancements R
|
||||
libressl Free version of the TLS/crypto stack forked from OpenSSL R
|
||||
libva-intel-driver VA-API implementation for Intel G45 and HD Graphics family R
|
||||
licenses A set of common license files R
|
||||
linux-firmware Firmware files for Linux R
|
||||
linux-headers Headers and scripts for building modules for the Linux kernel R
|
||||
littler a hash-bang and simple command line pipe front end for GNU R A
|
||||
logrotate Rotates system logs automatically R
|
||||
lswt List Wayland toplevels A
|
||||
lua-format LuaFormatter - Code formatter for Lua A
|
||||
lua-language-server Lua Language Server coded by Lua R
|
||||
lua51-busted Elegant Lua unit testing R
|
||||
luacheck A tool for linting and static analysis of Lua code. A
|
||||
lynx A text browser for the World Wide Web R
|
||||
maim Utility to take a screenshot using imlib2 R
|
||||
man-db A utility for reading man pages R
|
||||
man-pages Linux man pages R
|
||||
masterpdfeditor-free A complete solution for creation and editing PDF files - Free version without watermark A
|
||||
mbsync-git free (GPL) mailbox synchronization program A
|
||||
mermaid-cli Generation of diagram and flowchart from text in a similar manner as markdown (CLI) A
|
||||
mimeo Open files by MIME-type or file name using regular expressions. A
|
||||
minio-client Replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage R
|
||||
mopidy-iris A Mopidy Web client that utilizes the Spotify and EchoNest frameworks. (Formerly Spotmop) A
|
||||
mopidy-local Mopidy extension for local media playback A
|
||||
mopidy-mpd Mopidy extension for controlling playback from MPD clients A
|
||||
mopidy-mpris Mopidy extension for controlling Mopidy through the MPRIS D-Bus interface A
|
||||
mopidy-scrobbler Mopidy extension for scrobbling played tracks to Last.fm A
|
||||
mopidy-spotify Mopidy extension for playing music from Spotify A
|
||||
moreutils A growing collection of the unix tools that nobody thought to write thirty years ago R
|
||||
mosh Mobile shell, surviving disconnects with local echo and line editing R
|
||||
mpv-mpris MPRIS (Media Player Remote Interface Spec) plugin for mpv A
|
||||
msmtp A mini smtp client R
|
||||
nano Pico editor clone with enhancements R
|
||||
ncmpcpp Almost exact clone of ncmpc with some new features R
|
||||
needrestart Restart daemons after library updates. A
|
||||
neomutt A version of mutt with added features R
|
||||
neovim Fork of Vim aiming to improve user experience, plugins, and GUIs R
|
||||
nerd-fonts-fira-code Patched font Fira (Fura) Code from the nerd-fonts library A
|
||||
net-tools Configuration tools for Linux networking R
|
||||
netctl Profile based systemd network management R
|
||||
nethogs A net top tool which displays traffic used per process instead of per IP or interface R
|
||||
network-manager-applet Applet for managing network connections R
|
||||
networkmanager-openconnect NetworkManager VPN plugin for OpenConnect R
|
||||
networkmanager-openvpn NetworkManager VPN plugin for OpenVPN R
|
||||
newsboat An RSS/Atom feed reader for text terminals R
|
||||
nextcloud-client Nextcloud desktop client R
|
||||
nfs-utils Support programs for Network File Systems R
|
||||
nmap Utility for network discovery and security auditing R
|
||||
nodejs-markdownlint-cli MarkdownLint Command Line Interface A
|
||||
nodejs-pandiff Prose diffs for any document format supported by Pandoc A
|
||||
nsxiv Neo (or New or Not) Simple (or Small or Suckless) X Image Viewer A
|
||||
ntfs-3g NTFS filesystem driver and utilities R
|
||||
ntp Network Time Protocol reference implementation R
|
||||
nvm Node Version Manager - Simple bash script to manage multiple active node.js versions R
|
||||
nzbget Download from Usenet using .nzb files R
|
||||
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 R
|
||||
os-prober Utility to detect other OSes on a set of drives R
|
||||
p7zip Command-line file archiver with high compression ratio R
|
||||
parallel A shell tool for executing jobs in parallel R
|
||||
paru-bin Feature packed AUR helper A
|
||||
pass-coffin A password store extension that hides data inside a GPG coffin A
|
||||
pass-ssh A pass extension that creates ssh keys with an automatically generated passphrases stored in pass and outputs the public key using fzf or rofi A
|
||||
pavucontrol PulseAudio Volume Control R
|
||||
pdfjs PDF reader in javascript R
|
||||
pdftk Command-line tool for working with PDFs R
|
||||
peek Simple screen recorder with an easy to use interface R
|
||||
perf Linux kernel performance auditing tool R
|
||||
piavpn-bin Private Internet Access client A
|
||||
picom X compositor that may fix tearing issues R
|
||||
pipewire-alsa Low-latency audio/video router and processor - ALSA configuration R
|
||||
playerctl mpris media player controller and lib for spotify, vlc, audacious, bmp, xmms2, and others. R
|
||||
polybar A fast and easy-to-use status bar A
|
||||
powertop A tool to diagnose issues with power consumption and power management R
|
||||
prettier An opinionated code formatter for JS, JSON, CSS, YAML and much more R
|
||||
protonvpn-cli-ng A Community Linux CLI for ProtonVPN. A
|
||||
pulseaudio-alsa ALSA Configuration for PulseAudio R
|
||||
pulsemixer CLI and curses mixer for pulseaudio R
|
||||
pv A terminal-based tool for monitoring the progress of data through a pipeline. R
|
||||
pyright Type checker for the Python language R
|
||||
python-adblock Brave's adblock library in Python R
|
||||
python-black Uncompromising Python code formatter R
|
||||
python-dictcc commandline tool for dict.cc A
|
||||
python-openpyxl A Python library to read/write Excel 2007 xlsx/xlsm files R
|
||||
python-pagelabels Python library to manipulate PDF page numbers and labels. A
|
||||
python-pdfminer.six Community maintained fork of pdfminer A
|
||||
python-pip The PyPA recommended tool for installing Python packages R
|
||||
python-pipx Install and Run Python Applications in Isolated Environments R
|
||||
python-poetry Python dependency management and packaging made easy R
|
||||
python-pybluez Python wrapper for the BlueZ Bluetooth stack R
|
||||
python-pybtex A BibTeX-compatible bibliography processor written in Python R
|
||||
python-pynvim Python client for Neovim R
|
||||
python-readability-lxml Fast html to text parser (article readability tool) python library R
|
||||
python-slugify A Python slugify application that handles unicode R
|
||||
qt5-wayland Provides APIs for Wayland R
|
||||
qt5-xmlpatterns Support for XPath, XQuery, XSLT and XML schema validation R
|
||||
qtcurve-gtk2 A configurable set of widget styles for KDE and Gtk R
|
||||
qutebrowser A keyboard-driven, vim-like browser based on PyQt5 R
|
||||
redshift Adjusts the color temperature of your screen according to your surroundings. R
|
||||
refind An EFI boot manager R
|
||||
reflector A Python 3 module and script to retrieve and filter the latest Pacman mirror list. R
|
||||
remind A sophisticated calendar and alarm program. R
|
||||
restic Fast, secure, efficient backup program R
|
||||
river A dynamic tiling wayland compositor. A
|
||||
rivercarro-git A slightly modified version of rivertile layout generator for river. A
|
||||
rng-tools Random number generator related utilities R
|
||||
rtv Browse Reddit from your terminal A
|
||||
sc-im A spreadsheet program based on SC A
|
||||
screen Full-screen window manager that multiplexes a physical terminal R
|
||||
sfz A simple static file server A
|
||||
shellcheck-bin Shell script analysis tool (binary release) A
|
||||
shfmt Format shell programs R
|
||||
siggo A terminal gui for signal-cli, written in Go. A
|
||||
slurp Select a region in a Wayland compositor R
|
||||
speedtest-cli Command line interface for testing internet bandwidth using speedtest.net R
|
||||
sshfs FUSE client based on the SSH File Transfer Protocol R
|
||||
steam Valve's digital software delivery system R
|
||||
stow Manage installation of multiple softwares in the same directory tree R
|
||||
surfraw Shell Users' Revolutionary Front Rage Against the Web R
|
||||
swaybg Wallpaper tool for Wayland compositors R
|
||||
systemd-sysvcompat sysvinit compat for systemd R
|
||||
task-spooler Queue up tasks from the shell for batch execution A
|
||||
taskopen Script for taking notes and open urls with taskwarrior A
|
||||
tasksh A shell command that wraps Taskwarrior commands A
|
||||
tex-gyre-fonts Substitute PostScript fonts in OpenType format R
|
||||
texlab A cross-platform implementation of the Language Server Protocol for LaTeX. R
|
||||
tigervnc Suite of VNC servers and clients. Based on the VNC 4 branch of TightVNC. R
|
||||
timew Timewarrior, A command line time tracking application R
|
||||
tllocalmgr-git A shell and command-line utility to manage TeXLive on Arch Linux A
|
||||
tlp Linux Advanced Power Management R
|
||||
tmux A terminal multiplexer R
|
||||
toilet free replacement for the FIGlet utility. A
|
||||
tomb Crypto Undertaker, a simple tool to manage encrypted storage R
|
||||
toot a Mastodon CLI client A
|
||||
topgrade Invoke the upgrade procedure of multiple package managers R
|
||||
transmission-qt Fast, easy, and free BitTorrent client (Qt GUI) R
|
||||
ttf-brill Brill Typeface by John Hudson for Brill Publishing House A
|
||||
ttf-comic-neue Comic Neue aspires to be the casual script choice for everyone including the typographically savvy. A
|
||||
ttf-heuristica A serif latin & cyrillic font, derived from the "Adobe Utopia" font by Apanov A
|
||||
ttf-iosevka-nerd Typeface family designed for coding, terminal use and technical documents (Nerd Fonts) R
|
||||
ttf-signika Sans-serif typeface from Google by Anna Giedryś A
|
||||
typescript-language-server-bin Language server implementation for JavaScript / TypeScript A
|
||||
udiskie Removable disk automounter using udisks R
|
||||
ufw Uncomplicated and easy to use CLI tool for managing a netfilter firewall R
|
||||
unclutter A small program for hiding the mouse cursor R
|
||||
unrar The RAR uncompression program R
|
||||
unrtf Command-line program which converts RTF documents to other formats R
|
||||
upower Abstraction for enumerating power devices, listening to device events and querying history and statistics R
|
||||
urlview-xdg-git A curses URL parser for text files. Git version, adds support for QUITONLAUNCH option and XDG Base Directory specification compliance. A
|
||||
usql-bin Universal command-line interface for SQL databases A
|
||||
v4l2loopback-dkms v4l2-loopback device – module sources R
|
||||
vagrant Build and distribute virtualized development environments R
|
||||
vale-bin A customizable, syntax-aware linter for prose A
|
||||
vdirsyncer Synchronize CalDAV and CardDAV. R
|
||||
viddy A modern watch command A
|
||||
vifm-git Ncurses based file manager with vi like keybindings A
|
||||
vim-language-server VimScript language server A
|
||||
virtualbox Powerful x86 virtualization for enterprise as well as home use R
|
||||
virtualbox-guest-iso The official VirtualBox Guest Additions ISO image R
|
||||
visidata Terminal spreadsheet multitool for discovering and arranging data A
|
||||
wavemon Ncurses-based monitoring application for wireless network devices R
|
||||
waybar-git Highly customizable Wayland bar for Sway and Wlroots based compositors (GIT) A
|
||||
waylock A simple screenlocker for wayland compositors R
|
||||
wdisplays GUI display configurator for wlroots compositors A
|
||||
wev tool for debugging wayland events, similar to xev A
|
||||
wget Network utility to retrieve files from the Web R
|
||||
wireguard-tools next generation secure network tunnel - tools for configuration R
|
||||
wireless_tools Tools allowing to manipulate the Wireless Extensions R
|
||||
wpa_actiond Daemon that connects to wpa_supplicant and handles connect and disconnect events A
|
||||
wtype xdotool type for wayland R
|
||||
xdg-user-dirs Manage user directories like ~/Desktop and ~/Music R
|
||||
xsv A fast CSV toolkit written in Rust A
|
||||
yaml-language-server-bin Language server implementation for YAML files and optional schema support A
|
||||
youtube-dl A command-line program to download videos from YouTube.com and a few more sites R
|
||||
ytfzf A posix script to find and watch youtube videos from the terminal. (Without API) A
|
||||
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
|
||||
zotero Zotero Standalone. Is a free, easy-to-use tool to help you collect, organize, cite, and share your research sources. A
|
||||
zsh-autosuggestions Fish-like autosuggestions for zsh R
|
||||
zsh-completions-git Additional completion definitions for Zsh A
|
||||
zsh-fast-syntax-highlighting-git Optimized and extended zsh-syntax-highlighting R
|
||||
zsh-pure-prompt Pretty, minimal and fast ZSH prompt A
|
Can't render this file because it contains an unexpected character in line 252 and column 64.
|
|
@ -1,283 +0,0 @@
|
|||
acpid
|
||||
activitywatch-bin
|
||||
afew
|
||||
alias-tips-git
|
||||
alsa-utils
|
||||
android-file-transfer
|
||||
android-sdk-platform-tools
|
||||
anki
|
||||
ansible-lint
|
||||
arch-wiki-lite
|
||||
arduino
|
||||
arduino-avr-core
|
||||
arduino-cli
|
||||
asciinema
|
||||
aspell-de
|
||||
aspell-en
|
||||
atool
|
||||
awesome
|
||||
barrier
|
||||
bash-completion
|
||||
bash-language-server
|
||||
bat
|
||||
beets
|
||||
biber
|
||||
bibtool
|
||||
bison
|
||||
bluez
|
||||
bluez-utils
|
||||
brightnessctl
|
||||
busted
|
||||
caddy
|
||||
calcurse
|
||||
catdoc
|
||||
clipman
|
||||
dbus-broker
|
||||
dcnnt
|
||||
dell-command-configure
|
||||
devour
|
||||
dhcpcd
|
||||
diff-so-fancy
|
||||
docker
|
||||
docker-compose
|
||||
docx2txt
|
||||
dos2unix
|
||||
duf
|
||||
dunst
|
||||
dust
|
||||
efm-langserver
|
||||
entr
|
||||
evince
|
||||
exa
|
||||
fasd
|
||||
fd
|
||||
ffmpegthumbnailer
|
||||
firefox
|
||||
flex
|
||||
fwupd
|
||||
fzf-tab-git
|
||||
gallery-dl
|
||||
gimp
|
||||
git-lfs
|
||||
gitea-tea-git
|
||||
gitlint
|
||||
gk6x-bin
|
||||
glances
|
||||
glow
|
||||
gnome-keyring
|
||||
gnu-netcat
|
||||
gnuplot
|
||||
go
|
||||
go-ipfs
|
||||
gomuks
|
||||
gopls
|
||||
gotty-bin
|
||||
grim
|
||||
gsimplecal
|
||||
gst-libav
|
||||
gst-plugins-base
|
||||
gst-plugins-ugly
|
||||
gstreamer-vaapi
|
||||
haveged
|
||||
heimdall
|
||||
htop
|
||||
hugo
|
||||
i3-gaps
|
||||
i3blocks
|
||||
i3lock
|
||||
i3status
|
||||
iftop
|
||||
imapfilter
|
||||
iputils
|
||||
ipython
|
||||
jabref-latest
|
||||
jiq
|
||||
jpdftweak
|
||||
jq
|
||||
jrnl
|
||||
keyd
|
||||
khal
|
||||
khard
|
||||
kitty
|
||||
lazygit
|
||||
libdvdcss
|
||||
libqalculate
|
||||
licenses
|
||||
linux-firmware
|
||||
linux-headers
|
||||
littler
|
||||
logrotate
|
||||
lswt
|
||||
lua-format
|
||||
lua-language-server
|
||||
lua51-busted
|
||||
luacheck
|
||||
lvm2
|
||||
lynx
|
||||
maim
|
||||
man-db
|
||||
man-pages
|
||||
masterpdfeditor-free
|
||||
mbsync-git
|
||||
mermaid-cli
|
||||
mimeo
|
||||
mopidy-iris
|
||||
mopidy-local
|
||||
mopidy-mpd
|
||||
mopidy-mpris
|
||||
mopidy-scrobbler
|
||||
mopidy-spotify
|
||||
moreutils
|
||||
mosh
|
||||
mpv
|
||||
mpv-mpris
|
||||
msmtp
|
||||
nano
|
||||
ncmpcpp
|
||||
needrestart
|
||||
neomutt
|
||||
neovim
|
||||
nerd-fonts-fira-code
|
||||
netctl
|
||||
nethogs
|
||||
network-manager-applet
|
||||
networkmanager-openconnect
|
||||
networkmanager-openvpn
|
||||
newsboat
|
||||
nextcloud-client
|
||||
nfs-utils
|
||||
nmap
|
||||
nodejs-pandiff
|
||||
nsxiv
|
||||
ntfs-3g
|
||||
ntp
|
||||
nvm
|
||||
oh-my-zsh-git
|
||||
os-prober
|
||||
p7zip
|
||||
pacman-contrib
|
||||
pandoc-bin
|
||||
parallel
|
||||
paru-bin
|
||||
pass
|
||||
pass-coffin
|
||||
pass-ssh
|
||||
patch
|
||||
pavolume
|
||||
pdfjs
|
||||
pdftk
|
||||
perf
|
||||
piavpn-bin
|
||||
picom
|
||||
pipewire-alsa
|
||||
pkgconf
|
||||
playerctl
|
||||
polybar
|
||||
prettier
|
||||
protonvpn-cli-ng
|
||||
psmisc
|
||||
pulseaudio-alsa
|
||||
pulsemixer
|
||||
pv
|
||||
pyright
|
||||
python-adblock
|
||||
python-black
|
||||
python-jedi
|
||||
python-language-server
|
||||
python-lxml
|
||||
python-openpyxl
|
||||
python-pdfminer.six
|
||||
python-pip
|
||||
python-pipx
|
||||
python-poetry
|
||||
python-pybtex
|
||||
python-pylint
|
||||
python-pynvim
|
||||
python-tabulate
|
||||
qrencode
|
||||
qutebrowser
|
||||
redshift
|
||||
refind
|
||||
reflector
|
||||
remind
|
||||
restic
|
||||
ripgrep-all
|
||||
river
|
||||
rivercarro
|
||||
rivercarro-git
|
||||
rng-tools
|
||||
rtv
|
||||
sc-im
|
||||
screen
|
||||
sfz
|
||||
shellcheck-bin
|
||||
shfmt
|
||||
siggo
|
||||
slurp
|
||||
speedtest-cli
|
||||
sshfs
|
||||
steam
|
||||
stow
|
||||
surfraw
|
||||
swaybg
|
||||
systemd-sysvcompat
|
||||
task
|
||||
task-spooler
|
||||
taskopen
|
||||
tasksh
|
||||
tex-gyre-fonts
|
||||
texlab
|
||||
tigervnc
|
||||
timew
|
||||
tllocalmgr-git
|
||||
tlp
|
||||
tmux
|
||||
toilet
|
||||
tomb
|
||||
toot
|
||||
topgrade
|
||||
transmission-qt
|
||||
ttf-brill
|
||||
ttf-comic-neue
|
||||
ttf-heuristica
|
||||
ttf-iosevka-nerd
|
||||
ttf-signika
|
||||
typescript-language-server-bin
|
||||
udiskie
|
||||
ufw
|
||||
unclutter
|
||||
unrar
|
||||
unrtf
|
||||
urlview-xdg-git
|
||||
usbutils
|
||||
usql-bin
|
||||
v4l2loopback-dkms
|
||||
vagrant
|
||||
vale-bin
|
||||
vdirsyncer
|
||||
vi
|
||||
viddy
|
||||
vifm-git
|
||||
vim-language-server
|
||||
visidata
|
||||
wavemon
|
||||
waybar-git
|
||||
waylock
|
||||
wdisplays
|
||||
wev
|
||||
wget
|
||||
wl-clipboard
|
||||
wtype
|
||||
xdg-user-dirs
|
||||
xsv
|
||||
yaml-language-server-bin
|
||||
youtube-dl
|
||||
yt-dlp-git
|
||||
ytfzf
|
||||
zathura-cb
|
||||
zathura-djvu
|
||||
zathura-pdf-mupdf
|
||||
zsh-autosuggestions
|
||||
zsh-completions-git
|
||||
zsh-fast-syntax-highlighting-git
|
||||
zsh-pure-prompt
|
|
@ -1,26 +0,0 @@
|
|||
ansible
|
||||
autoconf
|
||||
automake
|
||||
bash-bats
|
||||
dosfstools
|
||||
edk2-ovmf
|
||||
element-desktop
|
||||
gucharmap
|
||||
hplip
|
||||
intel-ucode
|
||||
libreoffice-fresh
|
||||
libva-intel-driver
|
||||
mesa-vdpau
|
||||
minio-client
|
||||
nodejs-markdownlint-cli
|
||||
nvidia
|
||||
nzbget
|
||||
pavucontrol
|
||||
peek
|
||||
powertop
|
||||
qemu
|
||||
virt-manager
|
||||
virtualbox
|
||||
vivaldi
|
||||
zoom
|
||||
zotero
|
61
bootstrap/update_package_list.sh
Executable file
61
bootstrap/update_package_list.sh
Executable file
|
@ -0,0 +1,61 @@
|
|||
#!/usr/bin/env bash
|
||||
BOOTSTRAP_DIR=~/.dotfiles/bootstrap
|
||||
OUTPUT=${BOOTSTRAP_DIR}/packages.tsv
|
||||
|
||||
pkg_all=$(pacman -Qqett | grep -v "$(pacman -Qqg base-devel)")
|
||||
|
||||
pkg_repo=$(pacman -Qqn)
|
||||
pkg_aur=$(pacman -Qqm)
|
||||
|
||||
# tsv file:
|
||||
# packagename, description, source, target
|
||||
# toot a toot manager A D
|
||||
|
||||
if [ -f "${OUTPUT}_TEMP" ]; then
|
||||
rm "${OUTPUT}_TEMP"
|
||||
fi
|
||||
touch "${OUTPUT}_TEMP"
|
||||
|
||||
# create new package list
|
||||
for pkg in $pkg_all; do
|
||||
|
||||
source=""
|
||||
if $(echo "$pkg_repo" | grep -F -q -x "$pkg"); then
|
||||
source="R"
|
||||
elif $(echo "$pkg_aur" | grep -F -q -x "$pkg"); then
|
||||
source="A"
|
||||
else
|
||||
echo "ERROR: The package $pkg could not be found in repositories or AUR."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
desc=$(pacman -Qs "$pkg" | grep -A1 --color "local/$pkg\s" | tail -n1)
|
||||
#remove leading whitespace
|
||||
desc="${desc#"${desc%%[![:space:]]*}"}"
|
||||
|
||||
target=""
|
||||
if [ -f "$OUTPUT" ]; then
|
||||
found_line=$(grep -e "^$pkg" "$OUTPUT")
|
||||
fi
|
||||
if [ -n "$found_line" ]; then
|
||||
target=$(echo "$found_line" | cut -f4)
|
||||
printf "Updating pkg: %s:%s from: %s, for: %s\n" "$pkg" "$desc" "$source" "$target"
|
||||
else
|
||||
printf "Adding pkg: %s:%s from: %s, for: %s\n" "$pkg" "$desc" "$source" "$target"
|
||||
fi
|
||||
|
||||
printf "%s\t%s\t%s\t%s\n" "$pkg" "$desc" "$source" "$target" >>"${OUTPUT}_TEMP"
|
||||
done
|
||||
|
||||
# notify on any removed packages
|
||||
if [ -f "$OUTPUT" ]; then
|
||||
while read -r line; do
|
||||
if ! echo "$line" | cut -f1 | xargs -I _ grep -F -q -x _ <(echo "$pkg_all"); then
|
||||
printf "REMOVED: %s" "$line"
|
||||
fi
|
||||
done <<<$(tail +2 "$OUTPUT")
|
||||
fi
|
||||
|
||||
# actually write to file
|
||||
cat <(printf "Name\tDescription\tSource\tTarget\n") "${OUTPUT}_TEMP" >"$OUTPUT"
|
||||
rm "${OUTPUT}_TEMP"
|
Loading…
Reference in a new issue