This commit is contained in:
Brian Zalewski 2023-07-17 07:28:38 +00:00
parent b67595624c
commit 59c7401138
24 changed files with 283 additions and 85 deletions

View file

@ -5,7 +5,9 @@ xattr -d com.apple.quarantine rclone
# TODOs
This page outlines various projects and tasks that we are currently working on. Creating a GitHub issue for each of these items would be overkill.
* [Title](https://www.ipfire.org/)
* `git-credential-manager configure`
* [Title](https://github.com/git-ecosystem/git-credential-manager/blob/release/docs/wsl.md)
* [Title](https://github.com/KnowledgeCanvas/knowledge)
* Configure Navi to automatically download and use the best cheat repositories
* Finish TS from 1400 stars
@ -76,6 +78,7 @@ The following links include software that need to be reviewed before including t
The following items are Docker containers that we may want to include as default containers deployed in our system.
* [Title](https://github.com/sipt/shuttle)
* https://github.com/erxes/erxes - CRM
* https://github.com/pawelmalak/flame - Homepage
* https://github.com/thelounge/thelounge - IRC

View file

@ -325,10 +325,13 @@ softwareGroups:
- axel
- bin
- bitly
- brew-gem
- brew-pkg
- charm
- cod
- desed
- difftastic
- dockutil
- duti
- emplace
- emoj
@ -518,6 +521,8 @@ softwareGroups:
Essentials: &Essentials
- clamav
- docker
- meta-package-manager
- openssl-osx-ca
- rkhunter
Essentials-Desktop: &Essentials-Desktop
- autokey
@ -664,6 +669,7 @@ softwareGroups:
- crunch
- exiftool
- ffmpeg
- gifsicle
- imagemagick
- jpegoptim
- korkut
@ -675,6 +681,7 @@ softwareGroups:
- vidmerger
- wkhtmltopdf
- youtube-dl
- yt-dlp
Media-Desktop: &Media-Desktop
- adobe-creative-cloud
- audacity
@ -768,6 +775,7 @@ softwareGroups:
- platformio
- please
- porter
- proxyman
- rust
- snapcraft
- solidity
@ -791,6 +799,7 @@ softwareGroups:
- cockpit
- cups
- lexicon
- squid
Networking: &Networking
- etcd
- cloudflared
@ -1377,6 +1386,8 @@ softwareGroups:
note: Unused Docker assistance package
- pkg: catfs
note: CatFS is reportedly in the alpha stage of development and we experienced issues when trying to use it.
- pkg: ccat
note: bat can be used instead and has more features
- pkg: cerebro
note: macOS system search more native way of providing similar features. Better alternatives are available.
- pkg: chromium

View file

@ -31,6 +31,14 @@
type = "file"
url = "https://curl.se/ca/cacert.pem"
### Update scripts
[".local/bin/update"]
type = "git-repo"
url = "https://github.com/UpdateCommand/update.git"
clone.args = ["--depth", "1"]
pull.args = ["--ff-only"]
refreshPeriod = "{{ $refreshPeriod }}"
### Betelgeuse Theme
[".local/src/betelgeuse"]
type = "git-repo"

View file

@ -28,23 +28,56 @@ if [ -d /Applications ] && [ -d /Library ] && [ -z "$NO_RESTART" ]; then
logg info 'If system updates were downloaded / installed, a reboot might be required.'
fi
### Install Xcode CLI tools on macOS
if [ -d /Applications ] && [ -d /Library ]; then
logg info 'Ensuring xcode-select is installed for developer tools'
xcode-select -p >/dev/null 2>&1 || sudo xcode-select --install
### Ensure dependencies are installed on Linux
if ! command -v curl > /dev/null || ! command -v git > /dev/null || ! command -v expect > /dev/null || ! command -v rsync > /dev/null; then
if command -v apt-get > /dev/null; then
# @description Ensure `build-essential`, `curl`, `expect`, `git`, `rsync`, `procps`, and `file` are installed on Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y build-essential curl expect git rsync procps file
elif command -v dnf > /dev/null; then
# @description Ensure `curl`, `expect`, `git`, `rsync`, `procps-ng`, and `file` are installed on Fedora (as well as the Development Tools package)
sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y curl expect git rsync procps-ng file
elif command -v yum > /dev/null; then
# @description Ensure `curl`, `expect`, `git`, `rsync`, `procps-ng`, and `file` are installed on CentOS (as well as the Development Tools package)
sudo yum groupinstall -y 'Development Tools'
sudo yum install -y curl expect git rsync procps-ng file
elif command -v pacman > /dev/null; then
# @description Ensure `base-devel`, `curl`, `expect`, `git`, `rsync`, `procps-ng`, and `file` are installed on Archlinux
sudo pacman update
sudo pacman -Sy base-devel curl expect git rsync procps-ng file
elif command -v zypper > /dev/null; then
# @description Ensure `curl`, `expect`, `git`, `rsync`, `procps`, and `file` are installed on OpenSUSE (as well as the devel_basis pattern)
sudo zypper install -yt pattern devel_basis
sudo zypper install -y curl expect git rsync procps file
elif command -v apk > /dev/null; then
# @description Ensure `curl`, `expect`, `git`, `rsync`, `procps`, and `file` are installed on Alpine
apk add build-base curl expect git rsync procps file
elif [ -d /Applications ] && [ -d /Library ]; then
# @description Ensure CLI developer tools are available on macOS (via `xcode-select`)
sudo xcode-select -p >/dev/null 2>&1 || xcode-select --install
elif [[ "$OSTYPE" == 'cygwin' ]] || [[ "$OSTYPE" == 'msys' ]] || [[ "$OSTYPE" == 'win32' ]]; then
# @description Ensure `curl`, `expect`, `git`, and `rsync` are installed on Windows
choco install -y curl expect git rsync
fi
fi
### Install Homebrew
ensurePackageManagerHomebrew() {
### Ensure Linux Homebrew is loaded
loadLinuxbrew() {
if ! command -v brew > /dev/null; then
if command -v sudo > /dev/null && sudo -n true; then
echo | bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
else
logg info 'Homebrew is not installed. Password may be required.'
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" || BREW_EXIT_CODE="$?"
if [ -n "$BREW_EXIT_CODE" ]; then
if [ -d "$HOME/.linuxbrew" ]; then
eval "$("$HOME/.linuxbrew/bin/brew" shellenv)"
elif [ -d "/home/linuxbrew/.linuxbrew" ]; then
eval "(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
fi
fi
}
### Ensures Homebrew folders have proper owners / permissions
fixHomebrewPermissions() {
if command -v brew > /dev/null; then
logg warn 'Homebrew was installed but part of the installation failed. Attempting to fix..'
logg info 'Applying proper permissions on Homebrew folders'
sudo chmod -R go-w "$(brew --prefix)/share"
BREW_DIRS="share/man share/doc share/zsh/site-functions etc/bash_completion.d"
for BREW_DIR in $BREW_DIRS; do
if [ -d "$(brew --prefix)/$BREW_DIR" ]; then
@ -53,13 +86,30 @@ ensurePackageManagerHomebrew() {
done
brew update --force --quiet
fi
}
### Installs Homebrew
ensurePackageManagerHomebrew() {
if ! command -v brew > /dev/null; then
if command -v sudo > /dev/null && sudo -n true; then
echo | bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
else
logg info 'Homebrew is not installed. Password may be required.'
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" || BREW_EXIT_CODE="$?"
if [ -n "$BREW_EXIT_CODE" ]; then
logg warn 'Homebrew was installed but part of the installation failed to complete successfully.'
fi
fi
fi
}
ensurePackageManagerHomebrew
# @description Enable auto-update service
### Logic
loadLinuxbrew
ensurePackageManagerHomebrew
loadLinuxbrew
fixHomebrewPermissions
### Enable auto-update service
if brew autoupdate status | grep 'Autoupdate is not configured.' > /dev/null; then
logg info 'Enabling Homebrew auto-update service (every 24 hours)'
brew autoupdate start --cleanup --greedy --upgrade

View file

@ -0,0 +1,20 @@
#!/usr/bin/env bash
# @file Ensure Auto-Update
# @brief Configures macOS to automatically check for system updates
# @description
# This script adds a macOS LaunchDaemon for the root user that checks for updates and automatically
# applies them. It will run if the file is available at `$HOME/Library/LaunchDaemons/com.apple.automatedupdates.plist`.
{{ includeTemplate "universal/profile" }}
{{ includeTemplate "universal/logg" }}
### Enable automated updates on macOS
if [ -d /Applications ] && [ -d /System ]; then
if [ -f "$HOME/Library/LaunchDaemons/com.apple.automatedupdates.plist" ] && [ ! -f "/Library/LaunchDaemons/com.apple.automatedupdates.plist" ]; then
logg info 'Configuring macOS to automatically apply system updates'
sudo mkdir -p /Library/LaunchDaemons
sudo cp -f "$HOME/Library/LaunchDaemons/com.apple.automatedupdates.plist" "/Library/LaunchDaemons/com.apple.automatedupdates.plist"
logg info 'Loading `/Library/LaunchDaemons/com.apple.automatedupdates.plist`'
sudo launchctl load "/Library/LaunchDaemons/com.apple.automatedupdates.plist" && logg success 'launchctl load successful'
fi
fi

View file

@ -104,6 +104,27 @@ if command -v rclone > /dev/null; then
sudo systemctl enable "s3-${USER}"
sudo systemctl restart "s3-${USER}"
fi
if [ -d /Applications ] && [ -d /System ]; then
### Enable Rclone mounts
logg info 'Ensuring Rclone mount-on-reboot definitions are in place'
if [ -f "$HOME/Library/LaunchDaemons/rclone.private.plist" ] && [ ! -f "/Library/LaunchDaemons/rclone.private.plist" ]; then
logg info 'Adding /Volumes/Private as S3 bucket mount, enabled at boot'
sudo mkdir -p /Library/LaunchDaemons
sudo cp -f "$HOME/Library/LaunchDaemons/rclone.private.plist" '/Library/LaunchDaemons/rclone.private.plist'
sudo launchctl load '/Library/LaunchDaemons/rclone.private.plist' && logg success 'launchctl load successful'
fi
if [ -f "$HOME/Library/LaunchDaemons/rclone.public.plist" ] && [ ! -f "/Library/LaunchDaemons/rclone.public.plist" ]; then
logg info 'Adding /Volumes/Public as S3 bucket mount, enabled at boot'
sudo mkdir -p /Library/LaunchDaemons
sudo cp -f "$HOME/Library/LaunchDaemons/rclone.public.plist" '/Library/LaunchDaemons/rclone.public.plist'
sudo launchctl load '/Library/LaunchDaemons/rclone.public.plist' && logg success 'launchctl load successful'
fi
if [ -f "$HOME/Library/LaunchDaemons/rclone.user.plist" ] && ! launchctl list | grep 'rclone.user' > /dev/null; then
logg info 'Adding ~/Public as S3 bucket mount, enabled at boot'
launchctl load "$HOME/Library/LaunchDaemons/rclone.user.plist" && logg success 'user launchctl load successful'
fi
fi
else
logg info '`rclone` is not available'
fi

View file

@ -12,7 +12,7 @@ if [ -d "${XDG_DATA_HOME:-$HOME/.local/share}/emsdk" ]; then
cd "${XDG_DATA_HOME:-$HOME/.local/share}/emsdk"
logg info 'Pulling latest changes for Emscripten source code'
git pull && logg success 'Successfully pulled latest Emscripten source code'
./emsdk install latest && logg success 'Installed latest Emscripten target'
./emsdk activate latest && logg success 'Activated latest Emscripten target'
./emsdk install latest > /dev/null && logg success 'Installed latest Emscripten target'
./emsdk activate latest > /dev/null && logg success 'Activated latest Emscripten target'
logg info 'Profile source inclusions are already implemented in Bash / ZSH profile'
fi

View file

@ -200,6 +200,13 @@ if command -v warp-cli > /dev/null; then
if [ -d /System ] && [ -d /Applications ]; then
sudo cp -f "$HOME/Library/Managed Preferences/com.cloudflare.warp.plist" '/Library/Managed Preferences/com.cloudflare.warp.plist'
sudo plutil -convert binary1 '/Library/Managed Preferences/com.cloudflare.warp.plist'
### Enable CloudFlare WARP credentials auto-populate (since file is deleted when not managed with MDM)
if [ -f "$HOME/Library/LaunchDaemons/com.cloudflare.warp.plist" ] && [ ! -f "/Library/LaunchDaemons/com.cloudflare.warp.plist" ]; then
sudo mkdir -p /Library/LaunchDaemons
sudo cp -f "$HOME/Library/LaunchDaemons/com.cloudflare.warp.plist" '/Library/LaunchDaemons/com.cloudflare.warp.plist'
sudo launchctl load "/Library/LaunchDaemons/com.cloudflare.warp.plist"
fi
elif [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/warp/mdm.xml" ]; then
sudo mkdir -p /var/lib/cloudflare-warp
sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/warp/mdm.xml" /var/lib/cloudflare-warp/mdm.xml

View file

@ -5,7 +5,7 @@
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>rclone.public</string>
<string>rclone.user</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/rclone-mount</string>

View file

@ -1,32 +0,0 @@
#!/usr/bin/env bash
if [ -d /Applications ] && [ -d /System ]; then
### Enable automated updates on macOS
if [ -f "$HOME/Library/LaunchDaemons/com.apple.automatedupdates.plist" ] && [ ! -f "/Library/LaunchDaemons/com.apple.automatedupdates.plist" ]; then
sudo mkdir -p /Library/LaunchDaemons
sudo cp -f "$HOME/Library/LaunchDaemons/com.apple.automatedupdates.plist" "/Library/LaunchDaemons/com.apple.automatedupdates.plist"
sudo launchctl load "/Library/LaunchDaemons/com.apple.automatedupdates.plist"
fi
### Enable CloudFlare WARP credentials auto-populate (since file is deleted when not managed with MDM)
if [ -f "$HOME/Library/LaunchDaemons/com.cloudflare.warp.plist" ] && [ ! -f "/Library/LaunchDaemons/com.cloudflare.warp.plist" ]; then
sudo mkdir -p /Library/LaunchDaemons
sudo cp -f "$HOME/Library/LaunchDaemons/com.cloudflare.warp.plist" '/Library/LaunchDaemons/com.cloudflare.warp.plist'
sudo launchctl load "/Library/LaunchDaemons/com.cloudflare.warp.plist"
fi
### Enable Rclone mounts
if [ -f "$HOME/Library/LaunchDaemons/rclone.private.plist" ] && [ ! -f "/Library/LaunchDaemons/rclone.private.plist" ]; then
sudo mkdir -p /Library/LaunchDaemons
sudo cp -f "$HOME/Library/LaunchDaemons/rclone.private.plist" '/Library/LaunchDaemons/rclone.private.plist'
sudo launchctl load '/Library/LaunchDaemons/rclone.private.plist'
fi
if [ -f "$HOME/Library/LaunchDaemons/rclone.public.plist" ] && [ ! -f "/Library/LaunchDaemons/rclone.public.plist" ]; then
sudo mkdir -p /Library/LaunchDaemons
sudo cp -f "$HOME/Library/LaunchDaemons/rclone.public.plist" '/Library/LaunchDaemons/rclone.public.plist'
sudo launchctl load '/Library/LaunchDaemons/rclone.public.plist'
fi
if [ -f "$HOME/Library/LaunchDaemons/rclone.user.plist" ]; then
launchctl load "$HOME/Library/LaunchDaemons/rclone.user.plist"
fi
fi

View file

@ -69,12 +69,8 @@ if [ "$BASH_SUPPORT" = 'true' ]; then
fi
fi
### Bash Completion
if [ -f "/usr/local/etc/profile.d/bash_completion.sh" ]; then
. "/usr/local/etc/profile.d/bash_completion.sh"
fi
### Bash Completion (Homebrew)
autoload -U +X bashcompinit && bashcompinit
if command -v brew > /dev/null; then
if [[ -r "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh" ]]; then
. "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh"
@ -142,6 +138,6 @@ if [ "$BASH_SUPPORT" = 'true' ]; then
### zoxide
if command -v zoxide > /dev/null; then
eval "$(zoxide init --cmd cd bash)"
eval "$(zoxide init --cmd cd bash)" > /dev/null
fi
fi

View file

@ -0,0 +1,9 @@
### Homebrew Completions
# Source: https://docs.brew.sh/Shell-Completion#configuring-completions-in-fish
if test -d (brew --prefix)"/share/fish/completions"
set -gx fish_complete_path $fish_complete_path (brew --prefix)/share/fish/completions
end
if test -d (brew --prefix)"/share/fish/vendor_completions.d"
set -gx fish_complete_path $fish_complete_path (brew --prefix)/share/fish/vendor_completions.d
end

View file

@ -61,6 +61,7 @@
whitespace = trailing-space,space-before-tab
[credential]
helper = cache --timeout=3600
credentialStore = {{ if eq .host.distro.id "darwin" }}keychain{{ else }}{{ if eq .host.distro.id "windows" }}wincredman{{ else }}secretservice{{ end }}{{ end }}
[credential "https://github.com"]
helper = !gh auth git-credential
[credential "https://gist.github.com"]

View file

@ -361,6 +361,11 @@ export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
### SDKMan
export SDKMAN_DIR="$XDG_DATA_HOME/sdkman"
### Update
if [ -d "$HOME/.local/bin/update/bin" ]; then
export PATH="$PATH:$HOME/.local/bin/update/bin"
fi
### Vagrant
export VAGRANT_ALIAS_FILE="$XDG_CONFIG_HOME/vagrant/aliases"
export VAGRANT_DEFAULT_PROVIDER=virtualbox

View file

@ -0,0 +1,10 @@
# Run first
You can put any scripts you want into this directory, and the program
will run your scripts first, before any of the update commands.
You may freely create subdirectories.
The program runs the executable files.
The program skips the non-executable files.

View file

@ -0,0 +1,3 @@
# Run last
All executable scripts in this folder get run after all the other update commands.

View file

@ -0,0 +1,5 @@
#!/usr/bin/env bash
if command -v brew > /dev/null; then
brew info --json=v1 --installed
fi

View file

@ -62,7 +62,7 @@ setopt SHARE_HISTORY
if [ ! -d "$XDG_CACHE_HOME/zsh" ]; then
mkdir -p "$XDG_CACHE_HOME/zsh"
fi
autoload -U +X compinit && compinit -d "$XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION"
zstyle ':completion:*:*:*:*:*' menu select
zstyle ':completion:*' cache-path "$XDG_CACHE_HOME/zsh/zcompcache"
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
@ -259,10 +259,6 @@ xterm*|rxvt*|Eterm|aterm|kterm|gnome*|alacritty)
;;
esac
### Homebrew ZSH Completions
# Must be sourced before compinit / Oh-My-ZSH inclusion
FPATH="$HOMEBREW_PREFIX/share/zsh/site-functions:${FPATH}"
### Antigen
if [ -f "$HOME/.local/scripts/antigen.zsh" ]; then
source "$HOME/.local/scripts/antigen.zsh"
@ -392,6 +388,19 @@ if command -v fzf > /dev/null; then
zstyle ':autocomplete:*' fzf-completion yes
fi
### Homebrew ZSH Completions
# Must be sourced before compinit / Oh-My-ZSH inclusion
FPATH="$HOMEBREW_PREFIX/share/zsh/site-functions:${FPATH}"
### ZSH compinit
autoload -Uz +X compinit && compinit -d "$XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION"
### Bash Completions
autoload -U +X bashcompinit && bashcompinit
if [ -f "/usr/local/etc/profile.d/bash_completion.sh" ]; then
. "/usr/local/etc/profile.d/bash_completion.sh"
fi
### Atuin
if command -v atuin > /dev/null; then
eval "$(atuin init zsh)"
@ -451,9 +460,6 @@ if command -v thefuck > /dev/null; then
eval "$(thefuck --alias)"
fi
### Bash Completions
autoload -U +X bashcompinit && bashcompinit
### HashiCorp Vault
if command -v vault > /dev/null; then
complete -o nospace -C vault vault

View file

@ -252,25 +252,28 @@ fi
# @description Ensure basic system packages are available on the device
if ! command -v curl > /dev/null || ! command -v git > /dev/null || ! command -v expect > /dev/null || ! command -v rsync > /dev/null; then
if command -v apt-get > /dev/null; then
# @description Ensure `build-essential`, `curl`, `expect`, `git`, and `rsync` are installed on Debian / Ubuntu
# @description Ensure `build-essential`, `curl`, `expect`, `git`, `rsync`, `procps`, and `file` are installed on Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y build-essential curl expect git rsync
sudo apt-get install -y build-essential curl expect git rsync procps file
elif command -v dnf > /dev/null; then
# @description Ensure `curl`, `expect`, `git`, and `rsync` are installed on Fedora
sudo dnf install -y curl expect git rsync
# @description Ensure `curl`, `expect`, `git`, `rsync`, `procps-ng`, and `file` are installed on Fedora (as well as the Development Tools package)
sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y curl expect git rsync procps-ng file
elif command -v yum > /dev/null; then
# @description Ensure `curl`, `expect`, `git`, and `rsync` are installed on CentOS
sudo yum install -y curl expect git rsync
# @description Ensure `curl`, `expect`, `git`, `rsync`, `procps-ng`, and `file` are installed on CentOS (as well as the Development Tools package)
sudo yum groupinstall -y 'Development Tools'
sudo yum install -y curl expect git rsync procps-ng file
elif command -v pacman > /dev/null; then
# @description Ensure `curl`, `expect`, `git`, and `rsync` are installed on Archlinux
# @description Ensure `base-devel`, `curl`, `expect`, `git`, `rsync`, `procps-ng`, and `file` are installed on Archlinux
sudo pacman update
sudo pacman -Sy curl expect git rsync
sudo pacman -Sy base-devel curl expect git rsync procps-ng file
elif command -v zypper > /dev/null; then
# @description Ensure `curl`, `expect`, `git`, and `rsync` are installed on OpenSUSE
sudo zypper install -y curl expect git rsync
# @description Ensure `curl`, `expect`, `git`, `rsync`, `procps`, and `file` are installed on OpenSUSE (as well as the devel_basis pattern)
sudo zypper install -yt pattern devel_basis
sudo zypper install -y curl expect git rsync procps file
elif command -v apk > /dev/null; then
# @description Ensure `curl`, `expect`, `git`, and `rsync` are installed on Alpine
apk add curl expect git rsync
# @description Ensure `curl`, `expect`, `git`, `rsync`, `procps`, and `file` are installed on Alpine
apk add build-base curl expect git rsync procps file
elif [ -d /Applications ] && [ -d /Library ]; then
# @description Ensure CLI developer tools are available on macOS (via `xcode-select`)
sudo xcode-select -p >/dev/null 2>&1 || xcode-select --install

View file

@ -1,6 +1,6 @@
---
# eslint-disable eslint-comments/disable-enable-pair, max-len, max-lines, no-warning-comments
# rhino mkvtoolnix testdisk ccat git-credential-manager source-highlight giter8 saltstack squid ettercap calc mongodb wdiff dialog john reaver oath-toolkit xhyve elm icdiff ddrescue gitlab-ci-multi-runner tcl-tk flac zenity terragrunt dbus grpc diffutils sonarqube haproxy cabal-install sonar-scanner wakeonlan tmate solr tcptraceroute hashcat handbrake iproute2mac 2fsprogs hydra you-get cabextract trash sphinx-doc iftop htop-osx dockutil xctool aspell w3m grc screenfetch moreutils brew-cask-completion openconnect media-info lftp unison logstash pstree rpm opam iperf3 libav gifsicle iperf colordiff lmdb mcrypt httprack aircrack-ng ntfs-3g glide glog parallel bison rename kubernetes-helm gdbm mobile-shell geckodriver pv sdl swig winetricks doxygen mtr graphicsmagick dos2unix highlight putty llvm flow watch gdb ant mariadb mercurial pidof autoconf maven readline libtool chromedriver pkg-config
# ettercap calc mongodb wdiff dialog john reaver oath-toolkit xhyve elm icdiff ddrescue gitlab-ci-multi-runner tcl-tk flac zenity terragrunt dbus grpc diffutils sonarqube haproxy cabal-install sonar-scanner tmate solr tcptraceroute hashcat handbrake iproute2mac 2fsprogs hydra you-get cabextract trash sphinx-doc iftop htop-osx w3m grc moreutils brew-cask-completion openconnect media-info lftp unison logstash pstree rpm iperf3 libav iperf colordiff lmdb mcrypt httprack aircrack-ng ntfs-3g glog parallel rename kubernetes-helm gdbm mobile-shell geckodriver pv sdl swig winetricks doxygen mtr graphicsmagick dos2unix highlight putty llvm flow watch gdb ant mariadb mercurial pidof autoconf maven readline libtool chromedriver pkg-config
# `softwarePackages` is a map of possible package managers to use while installing a program. The installer will
# look at the `installerPreference` variable and find the first package manager that is in the package's possible
# installation method and then use that. It is also sensitive to the type of operating system so a package with
@ -868,6 +868,11 @@ softwarePackages:
_home: https://astronvim.github.io/
_name: AstroNvim
_post: nvim --headless -c 'autocmd User PackerComplete quitall' &
dockutil:
_bin: dockutil
_github: https://github.com/kcrawford/dockutil
_name: DockUtil
brew:darwin: dockutil
platformio:
_bin: platformio
_github: https://github.com/platformio/platformio-core
@ -1053,6 +1058,13 @@ softwarePackages:
_home: https://jamiemason.github.io/syncpack/
_name: Syncpack
npm: syncpack
ccat:
_bin: ccat
_github: https://github.com/owenthereal/ccat
_name: ccat
brew: ccat
go: github.com/owenthereal/ccat@latest
pacman: ccat
flake8:
_bin: flake8
_desc: Flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins to check the style and quality of some python code.
@ -1100,17 +1112,49 @@ softwarePackages:
_name: bane
github: github.com/genuinetools/bane
go: github.com/genuinetools/bane@latest
openssl-osx-ca:
_bin: openssl-osx-ca
_github: https://github.com/raggi/openssl-osx-ca
_name: OpenSSL macOS CA
_service: openssl-osx-ca
brew:darwin: raggi/ale/openssl-osx-ca
meta-package-manager:
_bin: mpm
_github: https://github.com/kdeldycke/meta-package-manager
_name: Meta Package Manager
brew: meta-package-manager
pipx: meta-package-manager
yt-dlp:
_bin: yt-dlp
_github: https://github.com/yt-dlp/yt-dlp/wiki/Installation
_name: YouTube Download
brew: yt-dlp
choco: yt-dlp
pacman: yt-dlp
pipx: yt-dlp
scoop: yt-dlp
port: yt-dlp
winget: yt-dlp
brew-gem:
_bin: brew-gem
_github: https://github.com/sportngin/brew-gem
_name: Homebrew RubyGems
brew: brew-gem
brew-pkg:
_bin: brew-pkg
_github: https://github.com/timsutton/brew-pkg
_name: Homebrew Pkg
brew:darwin: timsutton/formulae/brew-pkg
bash-completion:
_bin: null
_desc: null
_docs: https://docs.brew.sh/Shell-Completion
_github: null
_home: null
_name: null
_when:darwin: '! brew list bash-completion | grep bash-completion > /dev/null'
_when:linux: '! brew list bash-completion | grep bash-completion > /dev/null'
brew:darwin: bash-completion
brew:linux: bash-completion
_name: Bash Completion Formula
_when: '! brew list bash-completion | grep bash-completion > /dev/null'
brew: bash-completion@2
brew: bash-completion@2
axel:
_bin: axel
_docs: null
@ -6637,6 +6681,18 @@ softwarePackages:
- gifski
- peek
yay: peek-git
gifsicle:
_bin: gifsicle
_github: https://github.com/kohler/gifsicle
_name: Gifsicle
apt: gifsicle
brew: gifsicle
dnf: gifsicle
pacman: gifsicle
choco: gifsicle
scoop: gifsicle
port: gifsicle
pgcli:
_bin: pgcli
_desc: '[pgcli](https://www.pgcli.com/) is a free and open-source CLI for Postgres that does auto-completion and syntax highlighting.'
@ -10050,6 +10106,21 @@ softwarePackages:
dnf: tigervnc-server
pacman: tigervnc
zypper: tigervnc
proxyman:
_bin: proxyman
_github: https://github.com/ProxymanApp/Proxyman
_name: Proxyman
_when:cask: '! test -d /Applications/Proxyman.app && ! test -d $HOME/Applications/Proxyman.app'
cask: proxyman
squid:
_bin: squid
_github: https://github.com/squid-cache/squid
_name: Squid
_service: squid
apt: squid
brew: squid
dnf: squid
pacman: squid
zap:
_bin: zap
_desc: Delightful AppImage package manager
@ -10179,6 +10250,7 @@ softwarePlugins:
plugins:
- microsoft.cst.attacksurfaceanalyzer.cli
- dotnet-format
- git-credential-manager
gcloud:
cmd: bash -c 'if ! gcloud components list | grep "Installed.*{PLUGIN}" &> /dev/null; then gcloud components install "{PLUGIN}"; fi'
plugins: