Updating from the command line


A lot of software is entrenched on GitHub. This is not the time to rant about GitHub; however, I do keep notifications of releases for software that I cannot update via other means (like through my distro). GitHub allows you to keep watch of releases but you can also add it to your RSS feed by adding releases.atom to the end of a repo URL. There is also the GitHub CLI which allows you to download releases from the command line. You can find more info here:


https://cli.github.com/


The RSS reader I use is sfeed_curses:


https://git.codemadness.org/sfeed_curses/file/README.html


Which is a simple TUI that wraps around sfeed, a command line suite of RSS related tools.


https://codemadness.org/git/sfeed/file/README.html


Unfortunately, if you want to add new keybindings to sfeed_curses, you have to modify the source code (not explicitly stated, but implied in the README). I can also write a script and add it to the SFEED_PIPER environment variable and programmatically script it that way, but still clunky. Anyway, let's get onto the actual download part.


In this example, I want to update Firefox-UI-Fix, which reverts some annoying UI changes introduced a while back. The primary reason I want to automate this is because I have some dark theme related CSS changes that prevent the flickering white whenever you open a new tab. It is rather straight-forward:


# Gets the latest release and downloads the asset that has Photon in it
gh release download -R black7375/Firefox-UI-Fix -p "*Photon*"
unzip Lepton-Photon-Style.zip -d ~/.mozilla/firefox/my_profile
cat newtab_dark.css >> ~/.mozilla/firefox/my_profile/chrome/userContent.css
rm Lepton-Photon-Style.zip

And the CSS changes can be obtained here:


https://linuxguideandhints.com/fedora/firefox.html#forcing-dark-theme


This saves me a lot of annoying clicking through GUI dialogs.


Addendum


Rather than create a new post, it occured to me to write about other things I do to keep my system updated. Here's my script helpfully labelled update-shit.sh:


#!/bin/bash

cargo-install-update install-update -a
pipx upgrade-all
winetricks --self-update
pushd "$HOME/.local/bin"
    curl -sL "https://raw.githubusercontent.com/pystardust/ytfzf/master/ytfzf" > ytfzf
popd
vim -c 'PlugUpdate'

Cargo does not have an upgrade all packages command that I know off, hence the need for cargo-install-update. pipx is useful for installing CLI binaries. It installs them in separate venvs and allows you to upgrade them all at once.


https://pypi.org/project/pipx/


If you are on Fedora, I *strongly* recommend using the dnf offline-upgrade plugin.


https://dnf-plugins-extras.readthedocs.io/en/latest/index.html



remyabel.flounder.online/