install.fairie/.local/dockerfunc.sh
Brian Zalewski e0842d80ea Update .local/bin/chrome-profile-export, .local/bin/firefox-profile-export, .local/bin/firefox-profile-import, .local/bin/install-dotfiles, .local/bin/install-rofi-theme, .local/bin/install-terminal-theme, .local/bin/ksetwallpaper, .local/bin/logg, .local/bin/opener, .local/bin/provision, .local/bin/quickstart, .local/bin/ramqube, .local/bin/run, .local/bin/squash-symlink, .local/delta/themes.gitconfig, .local/konsole/Default.profile, .local/share/bash-completion/completions/deno.bash, .local/share/bash-completion/completions/direnv.bash, .local/share/bash-completion/completions/fig.bash, .local/share/bash-completion/completions/fzf-key-bindings.bash, .local/share/bash-completion/completions/fzf.bash, .local/share/bash-completion/completions/gcloud.bash, .local/share/bash-completion/completions/gh.bash, .local/share/bash-completion/completions/googler.bash, .local/share/bash-completion/completions/gradle.bash, .local/share/bash-completion/completions/helm.bash, .local/share/bash-completion/completions/hyperfine.bash, .local/share/bash-completion/completions/kubectl.bash, .local/share/bash-completion/completions/mcfly.bash, .local/share/bash-completion/completions/nb.bash, .local/share/bash-completion/completions/nnn.bash, .local/share/bash-completion/completions/poetry.bash, .local/share/bash-completion/completions/volta.bash, .local/share/bash-completion/completions/wp.bash, .local/share/bash-completion/completions/zoxide.bash, .local/share/bash-completion/generate.sh, .local/share/chezmoi/home/.chezmoiscripts/archlinux/run_onchange_before_10_install-archlinux-dependencies.tmpl, .local/share/chezmoi/home/.chezmoiscripts/centos/run_onchange_before_10-install-centos-dependencies.tmpl, .local/share/chezmoi/home/.chezmoiscripts/darwin/run_onchange_after_10_configure-macos.tmpl, .local/share/chezmoi/home/.chezmoiscripts/darwin/run_onchange_after_20-ensure-zsh-macos.tmpl, .local/share/chezmoi/home/.chezmoiscripts/darwin/run_onchange_before_10_install-darwin-dependencies.tmpl, .local/share/chezmoi/home/.chezmoiscripts/debian/run_onchange_before_10-install-debian-dependencies.tmpl, .local/share/chezmoi/home/.chezmoiscripts/fedora/run_onchange_before_10-install-fedora-dependencies.tmpl, .local/share/chezmoi/home/.chezmoiscripts/freebsd/run_onchange_before_11-install-freebsd-packages.tmpl, .local/share/chezmoi/home/.chezmoiscripts/opensuse/run_onchange_before_11-install-opensuse-software.tmpl, .local/share/chezmoi/home/.chezmoiscripts/ubuntu/run_onchange_before_10_install-ubuntu-dependencies.tmpl, .local/share/chezmoi/home/.chezmoiscripts/universal/run_once_before_decrypt-age-key.tmpl, .local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_10_install-aqua-packages.sh.tmpl, .local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_15_install-asdf-packages.tmpl, .local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_50-crontab.tmpl, .local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_60-cleanup.tmpl, .local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_80-bash-completions.tmpl, .local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_after_99_bootstrap-z4h.tmpl, .local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_before_5-install-homebrew.tmpl, .local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_before_8-install-zx.tmpl, .local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_before_90-install-packages.tmpl, .local/share/chezmoi/home/.chezmoiscripts/universal/run_onchange_before_91-configure-gpg.tmpl, .local/share/chezmoi/home/.chezmoiscripts/windows/run_onchange_before_10-install-windows-dependencies.tmpl, .local/share/chezmoi/home/.chezmoiscripts/windows/run_onchange_before_11-install-windows-packages.tmpl, .local/share/chezmoi/home/.chezmoitemplates/darwin/Brewfile, .local/share/chezmoi/home/.chezmoitemplates/universal/essential-packages, .local/share/chezmoi/home/.chezmoitemplates/universal/logg, .local/share/chezmoi/home/.chezmoitemplates/universal/logg-compat, .local/share/chezmoi/home/.chezmoitemplates/universal/profile, .local/share/chezmoi/home/AppData/Local/clink/oh-my-posh.lua, .local/share/chezmoi/home/Library/Application Support/tabby/plugins/package-lock.json, .local/share/chezmoi/home/Library/Developer/Xcode/UserData/FontAndColorThemes/Betelgeuse Dark.dvtcolortheme, .local/share/chezmoi/home/Library/Developer/Xcode/UserData/FontAndColorThemes/Betelgeuse Light.dvtcolortheme, .local/share/chezmoi/home/Library/Preferences/com.apple.Terminal.plist, .local/share/chezmoi/home/Library/VirtualBox/VirtualBox.xml, .local/share/chezmoi/home/dot_VirtualBox/VirtualBox.xml, .local/share/chezmoi/home/dot_cache/readonly_rclone/.gitkeep, .local/share/chezmoi/home/dot_cache/zsh/.gitkeep, .local/share/chezmoi/home/dot_gnupg/public/apt.hashicorp.sig, .local/share/chezmoi/home/dot_gnupg/public/linux.wazuh.sig, .local/share/chezmoi/home/dot_gnupg/public/qubes.uman.sig, .local/share/chezmoi/home/dot_local/.config/symlink_taskfiles, .local/share/chezmoi/home/dot_local/assets/Betelgeuse.macOS.terminal, .local/share/chezmoi/home/dot_local/bin/executable_bwc, .local/share/chezmoi/home/dot_local/bin/executable_chrome-profile-export, .local/share/chezmoi/home/dot_local/bin/executable_chrome-profile-import, .local/share/chezmoi/home/dot_local/bin/executable_firefox-profile-export, .local/share/chezmoi/home/dot_local/bin/executable_firefox-profile-import, .local/share/chezmoi/home/dot_local/bin/executable_fonttest, .local/share/chezmoi/home/dot_local/bin/executable_install-dotfiles.tmpl, .local/share/chezmoi/home/dot_local/bin/executable_install-gnome-extensions, .local/share/chezmoi/home/dot_local/bin/executable_install-software, .local/share/chezmoi/home/dot_local/bin/executable_install-terminal-theme, .local/share/chezmoi/home/dot_local/bin/executable_ksetwallpaper, .local/share/chezmoi/home/dot_local/bin/executable_load-secrets, .local/share/chezmoi/home/dot_local/bin/executable_logg, .local/share/chezmoi/home/dot_local/bin/executable_opener, .local/share/chezmoi/home/dot_local/bin/executable_provision, .local/share/chezmoi/home/dot_local/bin/executable_quickstart, .local/share/chezmoi/home/dot_local/bin/executable_ramqube, .local/share/chezmoi/home/dot_local/bin/executable_run, .local/share/chezmoi/home/dot_local/bin/executable_slack, .local/share/chezmoi/home/dot_local/bin/executable_squash-symlink, .local/share/chezmoi/home/dot_local/bin/executable_tinypng.tmpl, .local/share/chezmoi/home/dot_local/bin/run_onchange_ensure-executable.tmpl, .local/share/chezmoi/home/dot_local/bin/symlink_bat.tmpl, .local/share/chezmoi/home/dot_local/bin/symlink_bombshell-client.tmpl, .local/share/chezmoi/home/dot_local/bin/symlink_fd.tmpl, .local/share/chezmoi/home/dot_local/bin/symlink_qrun.tmpl, .local/share/chezmoi/home/dot_local/bin/symlink_qscp, .local/share/chezmoi/home/dot_local/bin/symlink_qssh.tmpl, .local/share/chezmoi/home/dot_local/bin/symlink_readlink.tmpl, .local/share/chezmoi/home/dot_local/konsole/Default.profile, .local/share/chezmoi/home/dot_local/log/remove_dot_gitkeep, .local/share/chezmoi/home/dot_local/scripts/motd.bash, .local/share/chezmoi/home/dot_local/scripts/p10k.zsh, .local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_commonlib.py.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_qubes_pass.py.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_qubesformation.py.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_qubesguid.py.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_qubessls.py.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/plugins/connection/symlink_qubes.py.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/plugins/library/symlink_qubes_pass.py.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/plugins/library/symlink_qubesformation.py.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/plugins/library/symlink_qubesguid.py.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/plugins/library/symlink_qubessls.py.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/plugins/lookup/symlink_jq.py.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/plugins/lookup/symlink_qubes-pass.py.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/roles/run_onchange_after_symlink-ansible-roles.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/tasks/symlink_qubes.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/run_onchange_after_symlink-ansible-configs.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/symlink_README.md.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/symlink_Vagrantfile.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/symlink_ansible.cfg.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/symlink_docs.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/symlink_environments.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/symlink_main.yml.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/symlink_playbooks.tmpl, .local/share/chezmoi/home/dot_local/share/ansible/symlink_requirements.yml.tmpl, .local/share/chezmoi/home/dot_local/share/fonts/FontAwesome.ttf, .local/share/chezmoi/home/dot_local/share/fonts/Weather-Icons.ttf, .local/share/chezmoi/home/dot_local/share/git-core/templates/hooks/post-commit, .local/share/chezmoi/home/dot_local/state/bash/remove_dot_gitkeep, .local/share/chezmoi/home/dot_local/state/zsh/remove_dot_gitkeep, .local/share/chezmoi/home/dot_local/Taskfile-local.yml, .local/share/chezmoi/home/dot_ssh/authorized_keys.github.tmpl, .local/share/chezmoi/home/dot_ssh/create_private_readonly_private_id_rsa.tmpl, .local/share/chezmoi/home/dot_ssh/private_config.tmpl, .local/share/chezmoi/home/dot_ssh/run_onchanges_after_generate-public-keys.tmpl, .local/share/chezmoi/home/dot_vim/autoload/lightline/colorscheme/Betelgeuse.vim, .local/share/chezmoi/home/dot_vim/colors/Betelgeuse.vim, .local/share/chezmoi/home/dot_vim/vimrc, .local/share/chezmoi/home/private_dot_config/Kvantum/kvantum.config, .local/share/chezmoi/home/private_dot_config/VirtualBox/VirtualBox.xml.tmpl, .local/share/chezmoi/home/private_dot_config/alacritty/alacritty.yml, .local/share/chezmoi/home/private_dot_config/asdf/asdfrc.tmpl, .local/share/chezmoi/home/private_dot_config/asdf/default-cargo-pkgs.tmpl, .local/share/chezmoi/home/private_dot_config/asdf/default-golang-pkgs.tmpl, .local/share/chezmoi/home/private_dot_config/asdf/default-npm-packages, .local/share/chezmoi/home/private_dot_config/asdf/default-python-pkgs.tmpl, .local/share/chezmoi/home/private_dot_config/asdf/default-ruby-pkgs.tmpl, .local/share/chezmoi/home/private_dot_config/bashtop/bashtop.cfg, .local/share/chezmoi/home/private_dot_config/bat/config, .local/share/chezmoi/home/private_dot_config/brew/Brewfile.tmpl, .local/share/chezmoi/home/private_dot_config/brew/whalebrew, .local/share/chezmoi/home/private_dot_config/crontab/config, .local/share/chezmoi/home/private_dot_config/desktop/plasmoids.yml, .local/share/chezmoi/home/private_dot_config/direnv/direnv.toml, .local/share/chezmoi/home/private_dot_config/environments/desktop, .local/share/chezmoi/home/private_dot_config/environments/development, .local/share/chezmoi/home/private_dot_config/environments/terminal, .local/share/chezmoi/home/private_dot_config/fd/ignore, .local/share/chezmoi/home/private_dot_config/firejail/bitwarden.local, .local/share/chezmoi/home/private_dot_config/firejail/chromium.local, .local/share/chezmoi/home/private_dot_config/firejail/code.local, .local/share/chezmoi/home/private_dot_config/firejail/gcloud.local, .local/share/chezmoi/home/private_dot_config/firejail/google-chrome-stable.local, .local/share/chezmoi/home/private_dot_config/firejail/slack.local, .local/share/chezmoi/home/private_dot_config/firejail/thunderbird.local, .local/share/chezmoi/home/private_dot_config/fontconfig/fonts.conf, .local/share/chezmoi/home/private_dot_config/ghorg/conf.yaml.tmpl, .local/share/chezmoi/home/private_dot_config/git/attributes, .local/share/chezmoi/home/private_dot_config/git/commit-template, .local/share/chezmoi/home/private_dot_config/git/config.tmpl, .local/share/chezmoi/home/private_dot_config/git/ignore, .local/share/chezmoi/home/private_dot_config/gtk-1.0/.gitkeep, .local/share/chezmoi/home/private_dot_config/gtk-2.0/gtkrc, .local/share/chezmoi/home/private_dot_config/gtk-3.0/settings.ini, .local/share/chezmoi/home/private_dot_config/heroku/deploy.yml.tmpl, .local/share/chezmoi/home/private_dot_config/himalaya/config.toml.tmpl.TODO, .local/share/chezmoi/home/private_dot_config/k9s/plugin.yml, .local/share/chezmoi/home/private_dot_config/kitty/Betelgeuse-dark.conf, .local/share/chezmoi/home/private_dot_config/kitty/Betelgeuse-light.conf, .local/share/chezmoi/home/private_dot_config/kitty/kitty.conf, .local/share/chezmoi/home/private_dot_config/ngrok/ngrok.yml.tmpl, .local/share/chezmoi/home/private_dot_config/npm/npmrc.tmpl.TODO, .local/share/chezmoi/home/private_dot_config/oh-my-posh/Betelgeuse-minimal.omp.json, .local/share/chezmoi/home/private_dot_config/oh-my-posh/Betelgeuse.omp.json, .local/share/chezmoi/home/private_dot_config/pg/.gitkeep, .local/share/chezmoi/home/private_dot_config/pgcli/config, .local/share/chezmoi/home/private_dot_config/powershell/user_profile.ps1.TODO, .local/share/chezmoi/home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/themes/themer-dark-color-theme.json, .local/share/chezmoi/home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/themes/themer-light-color-theme.json, .local/share/chezmoi/home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/README.md, .local/share/chezmoi/home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/icon.svg, .local/share/chezmoi/home/private_dot_config/private_Code/User/extensions/theme-betelgeuse-vscode/package.json, .local/share/chezmoi/home/private_dot_config/private_Code/User/extensions.json, .local/share/chezmoi/home/private_dot_config/private_Code/User/keybindings.json, .local/share/chezmoi/home/private_dot_config/private_Code/User/settings.json, .local/share/chezmoi/home/private_dot_config/putty/.gitkeep, .local/share/chezmoi/home/private_dot_config/rclone/merge_rclone.conf, .local/share/chezmoi/home/private_dot_config/readline/inputrc, .local/share/chezmoi/home/private_dot_config/ripgrep/config, .local/share/chezmoi/home/private_dot_config/rofi/config.rasi.tmpl, .local/share/chezmoi/home/private_dot_config/shell/aliases.tmpl, .local/share/chezmoi/home/private_dot_config/shell/exports.tmpl, .local/share/chezmoi/home/private_dot_config/shell/functions, .local/share/chezmoi/home/private_dot_config/shell/motd, .local/share/chezmoi/home/private_dot_config/shell/private_dot_private, .local/share/chezmoi/home/private_dot_config/shell/profile, .local/share/chezmoi/home/private_dot_config/slack-term/config.tmpl, .local/share/chezmoi/home/private_dot_config/tabby/config.yaml.tmpl, .local/share/chezmoi/home/private_dot_config/terminator/config, .local/share/chezmoi/home/private_dot_config/tmux/.gitkeep, .local/share/chezmoi/home/private_dot_config/wget/wgetrc, .local/share/chezmoi/home/private_dot_config/xfce4/terminal/terminalrc, .local/share/chezmoi/home/private_dot_config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml, .local/share/chezmoi/home/private_dot_config/xsettingsd/xsettingsd.conf, .local/share/chezmoi/home/private_dot_config/youtube-dl/config, .local/share/chezmoi/home/private_dot_config/chromium-flags.conf, .local/share/chezmoi/home/private_dot_config/gtkrc, .local/share/chezmoi/home/private_dot_config/kcminputrc, .local/share/chezmoi/home/private_dot_config/kdeglobals, .local/share/chezmoi/home/private_dot_config/konsolerc, .local/share/chezmoi/home/private_dot_config/ksplashrc, .local/share/chezmoi/home/private_dot_config/ktimezonedrc, .local/share/chezmoi/home/private_dot_config/kwinrc, .local/share/chezmoi/home/private_dot_config/mimeapps.list, .local/share/chezmoi/home/private_dot_config/plasma-localerc, .local/share/chezmoi/home/private_dot_config/plasmarc, .local/share/chezmoi/home/.chezmoi.yaml.tmpl, .local/share/chezmoi/home/.chezmoidata.yaml, .local/share/chezmoi/home/.chezmoiexternal.toml, .local/share/chezmoi/home/.chezmoiignore, .local/share/chezmoi/home/.chezmoiremove, .local/share/chezmoi/home/chezmoi.txt.age, .local/share/chezmoi/home/dot_Xresources, .local/share/chezmoi/home/dot_bashrc, .local/share/chezmoi/home/dot_editorconfig, .local/share/chezmoi/home/dot_tool-versions.tmpl, .local/share/chezmoi/home/dot_zshrc, .local/share/chezmoi/system/Applications/Firefox.app/Contents/Resources/distribution/policies.json, .local/share/chezmoi/system/etc/fonts/local.conf, .local/share/chezmoi/system/etc/grub.d/31_hold-shift, .local/share/chezmoi/system/etc/keybase/config.json, .local/share/chezmoi/system/etc/opt/chrome/policies/managed/policies.json, .local/share/chezmoi/system/etc/systemd/system/r2-docker.service, .local/share/chezmoi/system/etc/systemd/system/r2-{{ .user.username }}.service.tmpl, .local/share/chezmoi/system/etc/timeshift/timeshift.json, .local/share/chezmoi/system/etc/rcloneignore, .local/share/chezmoi/system/mnt/private_r2-docker/remove_dot_gitkeep, .local/share/chezmoi/system/usr/lib/firefox/distribution/policies.json, .local/share/chezmoi/system/usr/lib/firefox-esr/distribution/policies.json, .local/share/chezmoi/system/usr/local/bin/executable_rclone-mount, .local/share/chezmoi/system/var/cache/rclone/remove_dot_gitkeep, .local/share/chezmoi/system/var/log/user/run_onchange_after-symlink-user-logs, .local/share/chezmoi/system/.chezmoiexternal.toml, .local/share/chezmoi/.chezmoiignore, .local/share/chezmoi/.chezmoiroot, .local/share/chezmoi/software.json, .local/share/chezmoi/software.yml, .local/share/fonts/FontAwesome.ttf, .local/share/fonts/Hack Bold Italic Nerd Font Complete Mono Windows Compatible.ttf, .local/share/fonts/Hack Bold Italic Nerd Font Complete Mono.ttf, .local/share/fonts/Hack Bold Italic Nerd Font Complete Windows Compatible.ttf, .local/share/fonts/Hack Bold Italic Nerd Font Complete.ttf, .local/share/fonts/Hack Bold Nerd Font Complete Mono Windows Compatible.ttf, .local/share/fonts/Hack Bold Nerd Font Complete Mono.ttf, .local/share/fonts/Hack Bold Nerd Font Complete Windows Compatible.ttf, .local/share/fonts/Hack Bold Nerd Font Complete.ttf, .local/share/fonts/Hack Italic Nerd Font Complete Mono Windows Compatible.ttf, .local/share/fonts/Hack Italic Nerd Font Complete Mono.ttf, .local/share/fonts/Hack Italic Nerd Font Complete Windows Compatible.ttf, .local/share/fonts/Hack Italic Nerd Font Complete.ttf, .local/share/fonts/Hack Regular Nerd Font Complete Mono Windows Compatible.ttf, .local/share/fonts/Hack Regular Nerd Font Complete Mono.ttf, .local/share/fonts/Hack Regular Nerd Font Complete Windows Compatible.ttf, .local/share/fonts/Hack Regular Nerd Font Complete.ttf, .local/share/fonts/Montserrat-Black.ttf, .local/share/fonts/Montserrat-BlackItalic.ttf, .local/share/fonts/Montserrat-Bold.ttf, .local/share/fonts/Montserrat-BoldItalic.ttf, .local/share/fonts/Montserrat-ExtraBold.ttf, .local/share/fonts/Montserrat-ExtraBoldItalic.ttf, .local/share/fonts/Montserrat-ExtraLight.ttf, .local/share/fonts/Montserrat-ExtraLightItalic.ttf, .local/share/fonts/Montserrat-Italic.ttf, .local/share/fonts/Montserrat-Light.ttf, .local/share/fonts/Montserrat-LightItalic.ttf, .local/share/fonts/Montserrat-Medium.ttf, .local/share/fonts/Montserrat-MediumItalic.ttf, .local/share/fonts/Montserrat-Regular.ttf, .local/share/fonts/Montserrat-SemiBold.ttf, .local/share/fonts/Montserrat-SemiBoldItalic.ttf, .local/share/fonts/Montserrat-Thin.ttf, .local/share/fonts/Montserrat-ThinItalic.ttf, .local/share/fonts/Weather-Icons.ttf, .local/share/fonts/ZillaSlab-Bold.ttf, .local/share/fonts/ZillaSlab-BoldItalic.ttf, .local/share/fonts/ZillaSlab-Italic.ttf, .local/share/fonts/ZillaSlab-Light.ttf, .local/share/fonts/ZillaSlab-LightItalic.ttf, .local/share/fonts/ZillaSlab-Medium.ttf, .local/share/fonts/ZillaSlab-MediumItalic.ttf, .local/share/fonts/ZillaSlab-Regular.ttf, .local/share/fonts/ZillaSlab-SemiBold.ttf, .local/share/fonts/ZillaSlab-SemiBoldItalic.ttf, .local/share/kactivitymanagerd/resources/database, .local/share/kactivitymanagerd/resources/database-shm, .local/share/kactivitymanagerd/resources/database-wal, .local/software/desktop/Brewfile, .local/software/desktop/Packages.config, .local/software/desktop/Wingetfile, .local/software/development/Brewfile, .local/software/development/Packages.config, .local/software/development/Scoopfile, .local/software/terminal/Brewfile, .local/software/terminal/Packages.config, .local/software/terminal/Scoopfile, .local/software/Gasfile.yml, .local/theme/Betelgeuse.macOS.terminal, .local/theme/background.jpg, .local/vagrant.d/.gitkeep, .local/Taskfile-localhost.yml, .local/aliases, .local/antigen.zsh, .local/dockerfunc.sh, .local/functions, .local/fzf-tmux.sh, .local/motd.sh, .local/p10k.zsh
Deleted dotfiles/.local/android-sdk/.gitkeep
2022-11-30 05:44:09 +00:00

1313 lines
30 KiB
Bash

#!/usr/bin/env bash
# Bash wrappers for docker run commands
# Source: https://github.com/jessfraz/dotfiles/blob/master/.dockerfunc
export DOCKER_REPO_PREFIX=jess
#
# Helper Functions
#
dcleanup(){
local containers
mapfile -t containers < <(docker ps -aq 2>/dev/null)
docker rm "${containers[@]}" 2>/dev/null
local volumes
mapfile -t volumes < <(docker ps --filter status=exited -q 2>/dev/null)
docker rm -v "${volumes[@]}" 2>/dev/null
local images
mapfile -t images < <(docker images --filter dangling=true -q 2>/dev/null)
docker rmi "${images[@]}" 2>/dev/null
}
del_stopped(){
local name=$1
local state
state=$(docker inspect --format "{{.State.Running}}" "$name" 2>/dev/null)
if [[ "$state" == "false" ]]; then
docker rm "$name"
fi
}
rmctr(){
# shellcheck disable=SC2068
docker rm -f $@ 2>/dev/null || true
}
relies_on(){
for container in "$@"; do
local state
state=$(docker inspect --format "{{.State.Running}}" "$container" 2>/dev/null)
if [[ "$state" == "false" ]] || [[ "$state" == "" ]]; then
echo "$container is not running, starting it for you."
$container
fi
done
}
# creates an nginx config for a local route
nginx_config(){
server=$1
route=$2
cat >"${HOME}/.nginx/conf.d/${server}.conf" <<-EOF
upstream ${server} { server ${route}; }
server {
server_name ${server};
location / {
proxy_pass http://${server};
proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host \$http_host;
proxy_set_header X-Forwarded-Proto \$scheme;
proxy_set_header X-Forwarded-For \$remote_addr;
proxy_set_header X-Forwarded-Port \$server_port;
proxy_set_header X-Request-Start \$msec;
}
}
EOF
# restart nginx
docker restart nginx
# add host to /etc/hosts
hostess add "$server" 127.0.0.1
# open browser
browser-exec "http://${server}"
}
#
# Container Aliases
#
apt_file(){
docker run --rm -it \
--name apt-file \
${DOCKER_REPO_PREFIX}/apt-file
}
alias apt-file="apt_file"
audacity(){
del_stopped audacity
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-e QT_DEVICE_PIXEL_RATIO \
--device /dev/snd \
--group-add audio \
--name audacity \
${DOCKER_REPO_PREFIX}/audacity
}
aws(){
docker run -it --rm \
-v "${HOME}/.aws:/root/.aws" \
--log-driver none \
--name aws \
${DOCKER_REPO_PREFIX}/awscli "$@"
}
az(){
docker run -it --rm \
-v "${HOME}/.azure:/root/.azure" \
--log-driver none \
${DOCKER_REPO_PREFIX}/azure-cli "$@"
}
bees(){
docker run -it --rm \
-e NOTARY_TOKEN \
-v "${HOME}/.bees:/root/.bees" \
-v "${HOME}/.boto:/root/.boto" \
-v "${HOME}/.dev:/root/.ssh:ro" \
--log-driver none \
--name bees \
${DOCKER_REPO_PREFIX}/beeswithmachineguns "$@"
}
cadvisor(){
docker run -d \
--restart always \
-v /:/rootfs:ro \
-v /var/run:/var/run:rw \
-v /sys:/sys:ro \
-v /var/lib/docker/:/var/lib/docker:ro \
-p 1234:8080 \
--name cadvisor \
google/cadvisor
hostess add cadvisor "$(docker inspect --format '{{.NetworkSettings.Networks.bridge.IPAddress}}' cadvisor)"
browser-exec "http://cadvisor:8080"
}
cheese(){
del_stopped cheese
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-v "${HOME}/Pictures:/root/Pictures" \
--device /dev/video0 \
--device /dev/snd \
--device /dev/dri \
--name cheese \
${DOCKER_REPO_PREFIX}/cheese
}
chrome(){
# add flags for proxy if passed
local proxy=
local map
local args=$*
if [[ "$1" == "tor" ]]; then
relies_on torproxy
map="MAP * ~NOTFOUND , EXCLUDE torproxy"
proxy="socks5://torproxy:9050"
args="https://check.torproject.org/api/ip ${*:2}"
fi
del_stopped chrome
# one day remove /etc/hosts bind mount when effing
# overlay support inotify, such bullshit
docker run -d \
--memory 3gb \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-v "${HOME}/Downloads:/root/Downloads" \
-v "${HOME}/Pictures:/root/Pictures" \
-v "${HOME}/Torrents:/root/Torrents" \
-v "${HOME}/.chrome:/data" \
-v /dev/shm:/dev/shm \
-v /etc/hosts:/etc/hosts \
--security-opt seccomp:/etc/docker/seccomp/chrome.json \
--device /dev/snd \
--device /dev/dri \
--device /dev/video0 \
--device /dev/usb \
--device /dev/bus/usb \
--group-add audio \
--group-add video \
--name chrome \
${DOCKER_REPO_PREFIX}/chrome --user-data-dir=/data \
--proxy-server="$proxy" \
--host-resolver-rules="$map" "$args"
}
consul(){
if [[ -n "$(which consul)" ]]; then
"$(which consul)" "$@"
else
del_stopped consul
# check if we passed args and if consul is running
local state
state=$(docker inspect --format "{{.State.Running}}" consul 2>/dev/null)
if [[ "$state" == "true" ]] && [[ "$*" != "" ]]; then
docker exec -it consul consul "$@"
return 0
fi
docker run -d \
--restart always \
-v "${HOME}/.consul:/etc/consul.d" \
-v /var/run/docker.sock:/var/run/docker.sock \
--net host \
-e GOMAXPROCS=2 \
--name consul \
${DOCKER_REPO_PREFIX}/consul agent \
-bootstrap-expect 1 \
-config-dir /etc/consul.d \
-data-dir /data \
-encrypt "$(docker run --rm ${DOCKER_REPO_PREFIX}/consul keygen)" \
-ui-dir /usr/src/consul \
-server \
-dc neverland \
-bind 0.0.0.0
hostess add consul "$(docker inspect --format '{{.NetworkSettings.Networks.bridge.IPAddress}}' consul)"
browser-exec "http://consul:8500"
fi
}
cura(){
del_stopped cura
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-v "${HOME}/cura:/root/cura" \
-v "${HOME}/.cache/cura:/root/.cache/cura" \
-v "${HOME}/.config/cura:/root/.config/cura" \
-e QT_DEVICE_PIXEL_RATIO \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--device /dev/dri \
--name cura \
${DOCKER_REPO_PREFIX}/cura
}
dcos(){
docker run -it --rm \
-v "${HOME}/.dcos:/root/.dcos" \
-v "$(pwd):/root/apps" \
-w /root/apps \
${DOCKER_REPO_PREFIX}/dcos-cli "$@"
}
figma() {
del_stopped figma
docker run --rm -it \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
--name figma \
${DOCKER_REPO_PREFIX}/figma-wine bash
}
firefox(){
del_stopped firefox
docker run -d \
--memory 2gb \
--net host \
--cpuset-cpus 0 \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v "${HOME}/.firefox/cache:/root/.cache/mozilla" \
-v "${HOME}/.firefox/mozilla:/root/.mozilla" \
-v "${HOME}/Downloads:/root/Downloads" \
-v "${HOME}/Pictures:/root/Pictures" \
-v "${HOME}/Torrents:/root/Torrents" \
-e "DISPLAY=unix${DISPLAY}" \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--device /dev/snd \
--device /dev/dri \
--name firefox \
${DOCKER_REPO_PREFIX}/firefox "$@"
# exit current shell
exit 0
}
fleetctl(){
docker run --rm -it \
--entrypoint fleetctl \
-v "${HOME}/.fleet://.fleet" \
r.j3ss.co/fleet "$@"
}
gcalcli(){
docker run --rm -it \
-v /etc/localtime:/etc/localtime:ro \
-v "${HOME}/.gcalcli/home:/home/gcalcli/home" \
-v "${HOME}/.gcalcli/work/oauth:/home/gcalcli/.gcalcli_oauth" \
-v "${HOME}/.gcalcli/work/gcalclirc:/home/gcalcli/.gcalclirc" \
--name gcalcli \
${DOCKER_REPO_PREFIX}/gcalcli "$@"
}
dgcloud(){
docker run --rm -it \
-v "${HOME}/.gcloud:/root/.config/gcloud" \
-v "${HOME}/.ssh:/root/.ssh:ro" \
-v "$(command -v docker):/usr/bin/docker" \
-v /var/run/docker.sock:/var/run/docker.sock \
--name gcloud \
${DOCKER_REPO_PREFIX}/gcloud "$@"
}
gimp(){
del_stopped gimp
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-v "${HOME}/Pictures:/root/Pictures" \
-v "${HOME}/.gtkrc:/root/.gtkrc" \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--name gimp \
${DOCKER_REPO_PREFIX}/gimp
}
gitsome(){
docker run --rm -it \
-v /etc/localtime:/etc/localtime:ro \
--name gitsome \
--hostname gitsome \
-v "${HOME}/.gitsomeconfig:/home/anon/.gitsomeconfig" \
-v "${HOME}/.gitsomeconfigurl:/home/anon/.gitsomeconfigurl" \
${DOCKER_REPO_PREFIX}/gitsome
}
hollywood(){
docker run --rm -it \
--name hollywood \
${DOCKER_REPO_PREFIX}/hollywood
}
htop(){
if [[ -n "$(which htop)" ]]; then
"$(which htop)" "$@"
else
docker run --rm -it \
--pid host \
--net none \
--name htop \
${DOCKER_REPO_PREFIX}/htop
fi
}
htpasswd(){
docker run --rm -it \
--net none \
--name htpasswd \
--log-driver none \
${DOCKER_REPO_PREFIX}/htpasswd "$@"
}
http(){
docker run -t --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
--log-driver none \
${DOCKER_REPO_PREFIX}/httpie "$@"
}
imagemin(){
local image=$1
local extension="${image##*.}"
local filename="${image%.*}"
docker run --rm -it \
-v /etc/localtime:/etc/localtime:ro \
-v "${HOME}/Pictures:/root/Pictures" \
${DOCKER_REPO_PREFIX}/imagemin sh -c "imagemin /root/Pictures/${image} > /root/Pictures/${filename}_min.${extension}"
}
irssi() {
del_stopped irssi
# relies_on notify_osd
docker run --rm -it \
--user root \
-v "${HOME}/.irssi:/home/user/.irssi" \
${DOCKER_REPO_PREFIX}/irssi \
chown -R user /home/user/.irssi
docker run --rm -it \
-v /etc/localtime:/etc/localtime:ro \
-v "${HOME}/.irssi:/home/user/.irssi" \
--read-only \
--name irssi \
${DOCKER_REPO_PREFIX}/irssi
}
john(){
local file
file=$(realpath "$1")
docker run --rm -it \
-v "${file}:/root/$(basename "${file}")" \
${DOCKER_REPO_PREFIX}/john "$@"
}
kernel_builder(){
docker run --rm -it \
-v /usr/src:/usr/src \
-v /lib/modules:/lib/modules \
-v /boot:/boot \
--name kernel-builder \
${DOCKER_REPO_PREFIX}/kernel-builder
}
keypassxc(){
del_stopped keypassxc
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /usr/share/X11/xkb:/usr/share/X11/xkb:ro \
-e "DISPLAY=unix${DISPLAY}" \
-v /etc/machine-id:/etc/machine-id:ro \
--name keypassxc \
${DOCKER_REPO_PREFIX}/keepassxc
}
kicad(){
del_stopped kicad
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-v "${HOME}/kicad:/root/kicad" \
-v "${HOME}/.cache/kicad:/root/.cache/kicad" \
-v "${HOME}/.config/kicad:/root/.config/kicad" \
-e QT_DEVICE_PIXEL_RATIO \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--device /dev/dri \
--name kicad \
${DOCKER_REPO_PREFIX}/kicad
}
kvm(){
del_stopped kvm
relies_on pulseaudio
# modprobe the module
modprobe kvm
docker run -d \
--tmpfs /var/run \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v "${HOME}/kvm:/root/kvm" \
-e "DISPLAY=unix${DISPLAY}" \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
-e QT_DEVICE_PIXEL_RATIO \
--link pulseaudio:pulseaudio \
-e PULSE_SERVER=pulseaudio \
--group-add audio \
--name kvm \
--privileged \
${DOCKER_REPO_PREFIX}/kvm
}
libreoffice(){
del_stopped libreoffice
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-v "${HOME}/slides:/root/slides" \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--name libreoffice \
${DOCKER_REPO_PREFIX}/libreoffice
}
lpass(){
docker run --rm -it \
-v "${HOME}/.lpass:/root/.lpass" \
--name lpass \
${DOCKER_REPO_PREFIX}/lpass "$@"
}
lynx(){
if [[ -n "$(which lynx)" ]]; then
"$(which lynx)" "$@"
else
docker run --rm -it \
--name lynx \
${DOCKER_REPO_PREFIX}/lynx "$@"
fi
}
masscan(){
docker run -it --rm \
--log-driver none \
--net host \
--cap-add NET_ADMIN \
--name masscan \
${DOCKER_REPO_PREFIX}/masscan "$@"
}
mc(){
cwd="$(pwd)"
name="$(basename "$cwd")"
docker run --rm -it \
--log-driver none \
-v "${cwd}:/home/mc/${name}" \
--workdir "/home/mc/${name}" \
${DOCKER_REPO_PREFIX}/mc "$@"
}
mpd(){
del_stopped mpd
# adding cap sys_admin so I can use nfs mount
# the container runs as a unpriviledged user mpd
docker run -d \
--device /dev/snd \
--cap-add SYS_ADMIN \
-e MPD_HOST=/var/lib/mpd/socket \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/exports:/etc/exports:ro \
-v "${HOME}/.mpd:/var/lib/mpd" \
-v "${HOME}/.mpd.conf:/etc/mpd.conf" \
--name mpd \
${DOCKER_REPO_PREFIX}/mpd
}
mutt(){
# subshell so we dont overwrite variables
(
local account=$1
export IMAP_SERVER
export SMTP_SERVER
if [[ "$account" == "riseup" ]]; then
export GMAIL=$MAIL_RISEUP
export GMAIL_NAME=$MAIL_RISEUP_NAME
export GMAIL_PASS=$MAIL_RISEUP_PASS
export GMAIL_FROM=$MAIL_RISEUP_FROM
IMAP_SERVER=mail.riseup.net
SMTP_SERVER=$IMAP_SERVER
fi
docker run -it --rm \
-e GMAIL \
-e GMAIL_NAME \
-e GMAIL_PASS \
-e GMAIL_FROM \
-e GPG_ID \
-e IMAP_SERVER \
-e SMTP_SERVER \
-v "${HOME}/.gnupg:/home/user/.gnupg:ro" \
-v /etc/localtime:/etc/localtime:ro \
--name "mutt-${account}" \
${DOCKER_REPO_PREFIX}/mutt
)
}
ncmpc(){
del_stopped ncmpc
docker run --rm -it \
-v "${HOME}/.mpd/socket:/var/run/mpd/socket" \
-e MPD_HOST=/var/run/mpd/socket \
--name ncmpc \
${DOCKER_REPO_PREFIX}/ncmpc "$@"
}
neoman(){
del_stopped neoman
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
--device /dev/bus/usb \
--device /dev/usb \
--name neoman \
${DOCKER_REPO_PREFIX}/neoman
}
nes(){
del_stopped nes
local game=$1
docker run -d \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
--device /dev/dri \
--device /dev/snd \
--name nes \
${DOCKER_REPO_PREFIX}/nes "/games/${game}.rom"
}
netcat(){
docker run --rm -it \
--net host \
${DOCKER_REPO_PREFIX}/netcat "$@"
}
nginx(){
del_stopped nginx
docker run -d \
--restart always \
-v "${HOME}/.nginx:/etc/nginx" \
--net host \
--name nginx \
nginx
# add domain to hosts & open nginx
sudo hostess add jess 127.0.0.1
}
nmap(){
if [[ -n "$(which nmap)" ]]; then
"$(which nmap)" "$@"
else
docker run --rm -it \
--net host \
${DOCKER_REPO_PREFIX}/nmap "$@"
fi
}
notify_osd(){
del_stopped notify_osd
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
--net none \
-v /etc \
-v /home/user/.dbus \
-v /home/user/.cache/dconf \
-e "DISPLAY=unix${DISPLAY}" \
--name notify_osd \
${DOCKER_REPO_PREFIX}/notify-osd
}
alias notify-send=notify_send
notify_send(){
relies_on notify_osd
local args=${*:2}
docker exec -i notify_osd notify-send "$1" "${args}"
}
now(){
docker run -it --rm \
-v "${HOME}/.now:/root/.now" \
-v "$(pwd):/usr/src/repo:ro" \
--workdir /usr/src/repo \
--log-driver none \
${DOCKER_REPO_PREFIX}/now "$@"
}
openscad(){
del_stopped openscad
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-v "${HOME}/openscad:/root/openscad" \
-v "${HOME}/.config/OpenSCAD:/root/.config/OpenSCAD" \
-e QT_DEVICE_PIXEL_RATIO \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--device /dev/dri \
--name openscad \
${DOCKER_REPO_PREFIX}/openscad
}
opensnitch(){
del_stopped opensnitchd
del_stopped opensnitch
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
--net host \
--cap-add NET_ADMIN \
-v /etc/machine-id:/etc/machine-id:ro \
-v /var/run/dbus:/var/run/dbus \
-v /usr/share/dbus-1:/usr/share/dbus-1 \
-v "/var/run/user/$(id -u):/var/run/user/$(id -u)" \
-e DBUS_SESSION_BUS_ADDRESS \
-e XAUTHORITY \
-v "${HOME}/.Xauthority:$HOME/.Xauthority" \
-v /tmp:/tmp \
--name opensnitchd \
${DOCKER_REPO_PREFIX}/opensnitchd
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-v /usr/share/X11:/usr/share/X11:ro \
-v /usr/share/dbus-1:/usr/share/dbus-1 \
-v /etc/machine-id:/etc/machine-id:ro \
-v /var/run/dbus:/var/run/dbus \
-v "/var/run/user/$(id -u):/var/run/user/$(id -u)" \
-e DBUS_SESSION_BUS_ADDRESS \
-e XAUTHORITY \
-v "${HOME}/.Xauthority:$HOME/.Xauthority" \
-e HOME \
-e QT_DEVICE_PIXEL_RATIO \
-e XDG_RUNTIME_DIR \
-v /etc/passwd:/etc/passwd:ro \
-v /etc/group:/etc/group:ro \
-v /tmp:/tmp \
-u "$(id -u)" -w "$HOME" \
--net host \
--name opensnitch \
${DOCKER_REPO_PREFIX}/opensnitch
}
osquery(){
rmctr osquery
docker run -d --restart always \
-v /etc/localtime:/etc/localtime:ro \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/os-release:/etc/os-release:ro \
--net host \
--ipc host \
--pid host \
-e OSQUERY_ENROLL_SECRET \
--name osquery \
--privileged \
${DOCKER_REPO_PREFIX}/osquery \
--verbose \
--enroll_secret_env=OSQUERY_ENROLL_SECRET \
--docker_socket=/var/run/docker.sock \
--host_identifier=hostname \
--tls_hostname="${OSQUERY_DOMAIN}" \
--enroll_tls_endpoint=/api/v1/osquery/enroll \
--config_plugin=tls \
--config_tls_endpoint=/api/v1/osquery/config \
--config_tls_refresh=10 \
--disable_distributed=false \
--distributed_plugin=tls \
--distributed_interval=10 \
--distributed_tls_max_attempts=3 \
--distributed_tls_read_endpoint=/api/v1/osquery/distributed/read \
--distributed_tls_write_endpoint=/api/v1/osquery/distributed/write \
--logger_plugin=tls \
--logger_tls_endpoint=/api/v1/osquery/log \
--logger_tls_period=10
}
pandoc(){
if [[ -n "$(which pandoc)" ]]; then
"$(which pandoc)" "$@"
else
local file=${*: -1}
local lfile
lfile=$(readlink -m "$(pwd)/${file}")
local rfile
rfile=$(readlink -m "/$(basename "$file")")
local args=${*:1:${#@}-1}
docker run --rm \
-v "${lfile}:${rfile}" \
-v /tmp:/tmp \
--name pandoc \
${DOCKER_REPO_PREFIX}/pandoc "${args}" "${rfile}"
fi
}
pivman(){
del_stopped pivman
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
--device /dev/bus/usb \
--device /dev/usb \
--name pivman \
${DOCKER_REPO_PREFIX}/pivman
}
pms(){
del_stopped pms
docker run --rm -it \
-v "${HOME}/.mpd/socket:/var/run/mpd/socket" \
-e MPD_HOST=/var/run/mpd/socket \
--name pms \
${DOCKER_REPO_PREFIX}/pms "$@"
}
pond(){
del_stopped pond
relies_on torproxy
docker run --rm -it \
--net container:torproxy \
--name pond \
${DOCKER_REPO_PREFIX}/pond
}
privoxy(){
del_stopped privoxy
relies_on torproxy
docker run -d \
--restart always \
--link torproxy:torproxy \
-v /etc/localtime:/etc/localtime:ro \
-p 8118:8118 \
--name privoxy \
${DOCKER_REPO_PREFIX}/privoxy
hostess add privoxy "$(docker inspect --format '{{.NetworkSettings.Networks.bridge.IPAddress}}' privoxy)"
}
pulseaudio(){
del_stopped pulseaudio
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
--device /dev/snd \
-p 4713:4713 \
--restart always \
--group-add audio \
--name pulseaudio \
${DOCKER_REPO_PREFIX}/pulseaudio
}
rainbowstream(){
docker run -it --rm \
-v /etc/localtime:/etc/localtime:ro \
-v "${HOME}/.rainbow_oauth:/root/.rainbow_oauth" \
-v "${HOME}/.rainbow_config.json:/root/.rainbow_config.json" \
--name rainbowstream \
${DOCKER_REPO_PREFIX}/rainbowstream
}
registrator(){
del_stopped registrator
docker run -d --restart always \
-v /var/run/docker.sock:/tmp/docker.sock \
--net host \
--name registrator \
gliderlabs/registrator consul:
}
remmina(){
del_stopped remmina
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
-v "${HOME}/.remmina:/root/.remmina" \
--name remmina \
--net host \
${DOCKER_REPO_PREFIX}/remmina
}
ricochet(){
del_stopped ricochet
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
-e QT_DEVICE_PIXEL_RATIO \
--device /dev/dri \
--name ricochet \
${DOCKER_REPO_PREFIX}/ricochet
}
rstudio(){
del_stopped rstudio
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v "${HOME}/fastly-logs:/root/fastly-logs" \
-v /dev/shm:/dev/shm \
-e "DISPLAY=unix${DISPLAY}" \
-e QT_DEVICE_PIXEL_RATIO \
--device /dev/dri \
--name rstudio \
${DOCKER_REPO_PREFIX}/rstudio
}
s3cmdocker(){
del_stopped s3cmd
docker run --rm -it \
-e AWS_ACCESS_KEY="${DOCKER_AWS_ACCESS_KEY}" \
-e AWS_SECRET_KEY="${DOCKER_AWS_ACCESS_SECRET}" \
-v "$(pwd):/root/s3cmd-workspace" \
--name s3cmd \
${DOCKER_REPO_PREFIX}/s3cmd "$@"
}
scudcloud(){
del_stopped scudcloud
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-v /etc/machine-id:/etc/machine-id:ro \
-v /var/run/dbus:/var/run/dbus \
-v "/var/run/user/$(id -u):/var/run/user/$(id -u)" \
-e TERM \
-e XAUTHORITY \
-e DBUS_SESSION_BUS_ADDRESS \
-e HOME \
-e QT_DEVICE_PIXEL_RATIO \
-v /etc/passwd:/etc/passwd:ro \
-v /etc/group:/etc/group:ro \
-u "$(whoami)" -w "$HOME" \
-v "${HOME}/.Xauthority:$HOME/.Xauthority" \
-v "${HOME}/.scudcloud:/home/jessie/.config/scudcloud" \
--device /dev/snd \
--name scudcloud \
${DOCKER_REPO_PREFIX}/scudcloud
# exit current shell
exit 0
}
shorewall(){
del_stopped shorewall
docker run --rm -it \
--net host \
--cap-add NET_ADMIN \
--privileged \
--name shorewall \
${DOCKER_REPO_PREFIX}/shorewall "$@"
}
skype(){
del_stopped skype
relies_on pulseaudio
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
--link pulseaudio:pulseaudio \
-e PULSE_SERVER=pulseaudio \
--security-opt seccomp:unconfined \
--device /dev/video0 \
--group-add video \
--group-add audio \
--name skype \
${DOCKER_REPO_PREFIX}/skype
}
slack(){
del_stopped slack
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
--device /dev/snd \
--device /dev/dri \
--device /dev/video0 \
--group-add audio \
--group-add video \
-v "${HOME}/.slack:/root/.config/Slack" \
--ipc="host" \
--name slack \
${DOCKER_REPO_PREFIX}/slack "$@"
}
spotify(){
del_stopped spotify
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-e QT_DEVICE_PIXEL_RATIO \
--security-opt seccomp:unconfined \
--device /dev/snd \
--device /dev/dri \
--group-add audio \
--group-add video \
--name spotify \
${DOCKER_REPO_PREFIX}/spotify
}
ssh2john(){
local file
file=$(realpath "$1")
docker run --rm -it \
-v "${file}:/root/$(basename "${file}")" \
--entrypoint ssh2john \
${DOCKER_REPO_PREFIX}/john "$@"
}
sshb0t(){
del_stopped sshb0t
if [[ ! -d "${HOME}/.ssh" ]]; then
mkdir -p "${HOME}/.ssh"
fi
if [[ ! -f "${HOME}/.ssh/authorized_keys" ]]; then
touch "${HOME}/.ssh/authorized_keys"
fi
GITHUB_USER=${GITHUB_USER:=jessfraz}
docker run --rm -it \
--name sshb0t \
-v "${HOME}/.ssh/authorized_keys:/root/.ssh/authorized_keys" \
r.j3ss.co/sshb0t \
--user "${GITHUB_USER}" --keyfile /root/.ssh/authorized_keys --once
}
steam(){
del_stopped steam
relies_on pulseaudio
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/machine-id:/etc/machine-id:ro \
-v /var/run/dbus:/var/run/dbus \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v "${HOME}/.steam:/home/steam" \
-e "DISPLAY=unix${DISPLAY}" \
--link pulseaudio:pulseaudio \
-e PULSE_SERVER=pulseaudio \
--device /dev/dri \
--name steam \
${DOCKER_REPO_PREFIX}/steam
}
t(){
docker run -t --rm \
-v "${HOME}/.trc:/root/.trc" \
--log-driver none \
${DOCKER_REPO_PREFIX}/t "$@"
}
tarsnap(){
docker run --rm -it \
-v "${HOME}/.tarsnaprc:/root/.tarsnaprc" \
-v "${HOME}/.tarsnap:/root/.tarsnap" \
-v "$HOME:/root/workdir" \
${DOCKER_REPO_PREFIX}/tarsnap "$@"
}
telnet(){
docker run -it --rm \
--log-driver none \
${DOCKER_REPO_PREFIX}/telnet "$@"
}
termboy(){
del_stopped termboy
local game=$1
docker run --rm -it \
--device /dev/snd \
--name termboy \
${DOCKER_REPO_PREFIX}/nes "/games/${game}.rom"
}
terraform(){
if [[ -n "$(which terraform)" ]]; then
"$(which terraform)" "$@"
else
docker run -it --rm \
-v "${HOME}:${HOME}:ro" \
-v "$(pwd):/usr/src/repo" \
-v /tmp:/tmp \
--workdir /usr/src/repo \
--log-driver none \
-e GOOGLE_APPLICATION_CREDENTIALS \
-e SSH_AUTH_SOCK \
${DOCKER_REPO_PREFIX}/terraform "$@"
fi
}
tor(){
del_stopped tor
docker run -d \
--net host \
--name tor \
${DOCKER_REPO_PREFIX}/tor
# set up the redirect iptables rules
sudo setup-tor-iptables
# validate we are running through tor
browser-exec "https://check.torproject.org/"
}
torbrowser(){
del_stopped torbrowser
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--device /dev/snd \
--name torbrowser \
${DOCKER_REPO_PREFIX}/tor-browser
# exit current shell
exit 0
}
tormessenger(){
del_stopped tormessenger
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--device /dev/snd \
--name tormessenger \
${DOCKER_REPO_PREFIX}/tor-messenger
# exit current shell
exit 0
}
torproxy(){
del_stopped torproxy
docker run -d \
--restart always \
-v /etc/localtime:/etc/localtime:ro \
-p 9050:9050 \
--name torproxy \
${DOCKER_REPO_PREFIX}/tor-proxy
hostess add torproxy "$(docker inspect --format '{{.NetworkSettings.Networks.bridge.IPAddress}}' torproxy)"
}
traceroute(){
docker run --rm -it \
--net host \
${DOCKER_REPO_PREFIX}/traceroute "$@"
}
transmission(){
del_stopped transmission
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v "${HOME}/Torrents:/transmission/download" \
-v "${HOME}/.transmission:/transmission/config" \
-p 9091:9091 \
-p 51413:51413 \
-p 51413:51413/udp \
--name transmission \
${DOCKER_REPO_PREFIX}/transmission
hostess add transmission "$(docker inspect --format '{{.NetworkSettings.Networks.bridge.IPAddress}}' transmission)"
browser-exec "http://transmission:9091"
}
travis(){
docker run -it --rm \
-v "${HOME}/.travis:/root/.travis" \
-v "$(pwd):/usr/src/repo:ro" \
--workdir /usr/src/repo \
--log-driver none \
${DOCKER_REPO_PREFIX}/travis "$@"
}
virsh(){
relies_on kvm
docker run -it --rm \
-v /etc/localtime:/etc/localtime:ro \
-v /run/libvirt:/var/run/libvirt \
--log-driver none \
--net container:kvm \
${DOCKER_REPO_PREFIX}/libvirt-client "$@"
}
virtualbox(){
del_stopped virtualbox
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
--privileged \
--name virtualbox \
${DOCKER_REPO_PREFIX}/virtualbox
}
virt_viewer(){
relies_on kvm
docker run -it --rm \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-v /run/libvirt:/var/run/libvirt \
-e PULSE_SERVER=pulseaudio \
--group-add audio \
--log-driver none \
--net container:kvm \
${DOCKER_REPO_PREFIX}/virt-viewer "$@"
}
alias virt-viewer="virt_viewer"
visualstudio(){
del_stopped visualstudio
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
--device /dev/dri \
--name visualstudio \
${DOCKER_REPO_PREFIX}/vscode
}
alias vscode="visualstudio"
vlc(){
del_stopped vlc
relies_on pulseaudio
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
-e QT_DEVICE_PIXEL_RATIO \
--link pulseaudio:pulseaudio \
-e PULSE_SERVER=pulseaudio \
--group-add audio \
--group-add video \
-v "${HOME}/Torrents:/home/vlc/Torrents" \
--device /dev/dri \
--name vlc \
${DOCKER_REPO_PREFIX}/vlc
}
watchman(){
del_stopped watchman
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v "${HOME}/Downloads:/root/Downloads" \
--name watchman \
${DOCKER_REPO_PREFIX}/watchman --foreground
}
weematrix(){
del_stopped weematrix
docker run --rm -it \
--user root \
-v "${HOME}/.weechat:/home/user/.weechat" \
${DOCKER_REPO_PREFIX}/weechat-matrix \
chown -R user /home/user/.weechat
docker run --rm -it \
-v /etc/localtime:/etc/localtime:ro \
-v "${HOME}/.weechat:/home/user/.weechat" \
-e "TERM=screen" \
--name weematrix \
${DOCKER_REPO_PREFIX}/weechat-matrix
}
weeslack(){
del_stopped weeslack
docker run --rm -it \
--user root \
-v "${HOME}/.weechat:/home/user/.weechat" \
${DOCKER_REPO_PREFIX}/wee-slack \
chown -R user /home/user/.weechat
docker run --rm -it \
-v /etc/localtime:/etc/localtime:ro \
-v "${HOME}/.weechat:/home/user/.weechat" \
--name weeslack \
${DOCKER_REPO_PREFIX}/wee-slack
}
wg(){
docker run -i --rm \
--log-driver none \
-v /tmp:/tmp \
--cap-add NET_ADMIN \
--net host \
--name wg \
${DOCKER_REPO_PREFIX}/wg "$@"
}
wireshark(){
del_stopped wireshark
docker run -d \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=unix${DISPLAY}" \
--cap-add NET_RAW \
--cap-add NET_ADMIN \
--net host \
--name wireshark \
${DOCKER_REPO_PREFIX}/wireshark
}
wrk(){
docker run -it --rm \
--log-driver none \
--name wrk \
${DOCKER_REPO_PREFIX}/wrk "$@"
}
ykman(){
del_stopped ykman
if [[ -n "$(which ykman)" ]]; then
"$(which ykman)" "$@"
else
docker run --rm -it \
-v /etc/localtime:/etc/localtime:ro \
--device /dev/usb \
--device /dev/bus/usb \
--name ykman \
${DOCKER_REPO_PREFIX}/ykman bash
fi
}
ykpersonalize(){
del_stopped ykpersonalize
if [[ -n "$(which ykpersonalize)" ]]; then
"$(which ykpersonalize)" "$@"
else
docker run --rm -it \
-v /etc/localtime:/etc/localtime:ro \
--device /dev/usb \
--device /dev/bus/usb \
--name ykpersonalize \
${DOCKER_REPO_PREFIX}/ykpersonalize bash
fi
}
yubico_piv_tool(){
del_stopped yubico-piv-tool
if [[ -n "$(which yubico-piv-tool)" ]]; then
"$(which yubico-piv-tool)" "$@"
else
docker run --rm -it \
-v /etc/localtime:/etc/localtime:ro \
--device /dev/usb \
--device /dev/bus/usb \
--name yubico-piv-tool \
${DOCKER_REPO_PREFIX}/yubico-piv-tool bash
fi
}
alias yubico-piv-tool="yubico_piv_tool"