Update dotfiles/.local/share/chezmoi/home/private_dot_config/environments/terminal, dotfiles/.local/software/development/Brewfile, dotfiles/.local/share/chezmoi/home/private_dot_config/environments/development, dotfiles/.local/share/chezmoi/home/private_dot_config/environments/desktop, dotfiles/.local/software/desktop/Brewfile, dotfiles/.local/software/desktop/Packages.config, dotfiles/.local/software/desktop/Wingetfile, dotfiles/.local/software/development/Packages.config, dotfiles/.local/software/development/Scoopfile, dotfiles/.local/software/terminal/Brewfile, dotfiles/.local/software/terminal/Packages.config, dotfiles/.local/software/terminal/Scoopfile, dotfiles/.local/software/Gasfile.yml, dotfiles/.local/share/chezmoi/home/.chezmoiexternal.toml, dotfiles/.local/share/chezmoi/home/.chezmoidata.yaml, dotfiles/.local/share/chezmoi/system/etc/timeshift/timeshift.json, dotfiles/.local/share/chezmoi/home/private_dot_config/VirtualBox/VirtualBox.xml.tmpl, dotfiles/.local/share/chezmoi/home/Library/VirtualBox/VirtualBox.xml, dotfiles/.local/share/chezmoi/home/dot_VirtualBox/VirtualBox.xml, dotfiles/.local/share/chezmoi/home/private_dot_config/shell/exports.tmpl, dotfiles/.local/share/chezmoi/system/.chezmoiexternal.toml, dotfiles/.local/share/chezmoi/home/dot_local/bin/executable_install-software, dotfiles/.local/share/chezmoi/home/private_dot_config/shell/aliases.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/roles/run_onchange_after_symlink-ansible-roles, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/symlink_environments.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/symlink_playbooks.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/tasks/symlink_qubes.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/symlink_README.md.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/symlink_Vagrantfile.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/symlink_ansible.cfg.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/symlink_main.yml.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/symlink_requirements.yml.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/run_onchange_after_symlink-ansible-configs, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/symlink_docs.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_commonlib.py.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_qubes_pass.py.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_qubesformation.py.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_qubesguid.py.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/plugins/action/symlink_qubessls.py.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/plugins/connection/symlink_qubes.py.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/plugins/lookup/symlink_jq.py.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/plugins/lookup/symlink_qubes-pass.py.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/plugins/library/symlink_qubes_pass.py.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/plugins/library/symlink_qubesformation.py.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/plugins/library/symlink_qubesguid.py.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/share/ansible/plugins/library/symlink_qubessls.py.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/bin/symlink_bombshell-client.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/bin/symlink_qrun.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/bin/symlink_qssh.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/bin/symlink_qscp, dotfiles/.local/share/chezmoi/home/.chezmoi.yaml.tmpl, dotfiles/.local/share/chezmoi/home/dot_local/bin/run_onchange_ensure-executable.tmpl

Deleted dotfiles/.local/share/chezmoi/home/private_dot_config/environments/work
This commit is contained in:
Brian Zalewski 2022-11-27 14:59:13 +00:00
parent e0677a246f
commit faaa1f34e4
53 changed files with 679 additions and 69 deletions

View file

@ -131,6 +131,7 @@ data:
id: "{{ get .chezmoi.osRelease "id" | default .chezmoi.os }}" id: "{{ get .chezmoi.osRelease "id" | default .chezmoi.os }}"
home: "{{ .chezmoi.homeDir }}" home: "{{ .chezmoi.homeDir }}"
homeParentFolder: "{{ if eq .chezmoi.os "linux" }}/home{{ else if eq .chezmoi.os "darwin" }}/Users{{ else }}C:\Users{{ end }}" homeParentFolder: "{{ if eq .chezmoi.os "linux" }}/home{{ else if eq .chezmoi.os "darwin" }}/Users{{ else }}C:\Users{{ end }}"
qubes: {{ ne (stat (joinPath "usr" "bin" "qubes-session")) false }}
type: "{{ $chassisType }}" type: "{{ $chassisType }}"
work: {{ $work }} work: {{ $work }}
restricted: {{ $restricted }} restricted: {{ $restricted }}

View file

@ -38,6 +38,9 @@
# flatpak: com.yubico.yubioath # flatpak: com.yubico.yubioath
# gem: altair # gem: altair
# go: github.com/ProfessorManhattan/blockinfile@latest # go: github.com/ProfessorManhattan/blockinfile@latest
# krew:
# - ctx
# - ns
# nix: emplace # nix: emplace
# npm: altair # npm: altair
# pacman: altair # pacman: altair
@ -836,6 +839,8 @@ softwarePackages:
brew: volta brew: volta
scoop: volta scoop: volta
vscode: vscode:
_snapClassic: true
ansible: professormanhattan.vscode
brew: visual-studio-code brew: visual-studio-code
choco: vscode choco: vscode
snap: code snap: code
@ -1264,10 +1269,90 @@ softwarePackages:
brew: kn brew: kn
github: github.com/knative/client github: github.com/knative/client
yay: knative-client-bin yay: knative-client-bin
kubectx:
_github: https://github.com/ahmetb/kubectx
apt: kubectx
brew: kubectx
choco:
- kubens
- kubectx
krew:
- ctx
- ns
pacman: kubectx
port: kubectx
# @cli [kubenav](https://github.com/kubenav/kubenav) - kubenav is the navigator for your Kubernetes clusters right in your pocket # @cli [kubenav](https://github.com/kubenav/kubenav) - kubenav is the navigator for your Kubernetes clusters right in your pocket
kubenav: kubenav:
github: github.com/kubenav/kubenav github: github.com/kubenav/kubenav
yay: kubenav-bin yay: kubenav-bin
kubernetes-cli:
_snapClassic: true
brew: kubectl
choco: kubernetes-cli
snap: kubectl
kubernetes-helm:
_snapClassic: true
brew: helm
choco: kubernetes-helm
snap: helm
kubernetes-kompose:
brew: kompose
choco: kubernetes-kompose
snap: kompose
minikube:
_post: minikube config set driver virtualbox
brew: minikube
brew:darwin:
- hyperkit
- minikube
choco: minikube
kubeval:
_post:binary:darwin: |
tar xf kubeval-darwin-amd64.tar.gz
sudo cp kubeval /usr/local/bin
_post:binary:linux: |
tar xf kubeval-linux-amd64.tar.gz
sudo cp kubeval /usr/local/bin
_pre:scoop: scoop bucket add instrumenta https://github.com/instrumenta/scoop-instrumenta
binary:darwin: https://github.com/instrumenta/kubeval/releases/latest/download/kubeval-darwin-amd64.tar.gz
binary:linux: https://github.com/instrumenta/kubeval/releases/latest/download/kubeval-linux-amd64.tar.gz
brew: instrumenta/instrumenta/kubeval
scoop: kubeval
kvm:
_post:apt: |
sudo adduser "$(id -un)" kvm
sudo adduser "$(id -un)" libvirt
_post:dnf: |
sudo adduser "$(id -un)" kvm
sudo adduser "$(id -un)" libvirt
_post:pacman: |
sudo adduser "$(id -un)" kvm
sudo adduser "$(id -un)" libvirt
apt:
- bridge-utils
- libvirt-clients
- libvirt-daemon-system
- qemu-kvm
- virt-manager
- virtinst
brew:
- libvirt
- qemu
dnf:
- bridge-utils
- libvirt
- qemu-kvm
- virt-install
- virt-manager
- virt-top
- virt-viewer
pacman:
- bridge-utils
- libvirt
- virt-manager
lepton:
cask: lepton
snap: lepton
# @cli [license](https://github.com/nishanths/license) - Command-line license text generator # @cli [license](https://github.com/nishanths/license) - Command-line license text generator
license: license:
go: github.com/nishanths/license@latest go: github.com/nishanths/license@latest
@ -1647,6 +1732,29 @@ softwarePackages:
choco: velero choco: velero
github: github.com/vmware-tanzu/velero github: github.com/vmware-tanzu/velero
yay: velero-bin yay: velero-bin
virtualbox:
_pre:dnf: |
. /etc/os-release
cat <<EOF | sudo tee /etc/yum.repos.d/virtualbox.repo
[virtualbox]
name=Fedora $releasever - $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/$ID/$VERSION_ID/\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc
EOF
sudo dnf -y install @development-tools
sudo dnf -y install kernel-headers kernel-devel dkms elfutils-libelf-devel qt5-qtx11extras
_post:choco: |
# TODO
cd C:/Program Files/Oracle/VirtualBox/
# TODOFigure out how to get version without Ansible here and download / install the extpack
wget https://download.virtualbox.org/virtualbox/' + vbox_version + '/Oracle_VM_VirtualBox_Extension_Pack-' + vbox_version + '.vbox-extpack'
echo y | VBoxManage extpack install --replace ./Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack
ansible: professormanhattan.virtualbox
choco: virtualbox
dnf: virtualbox-7.0
# @cli [waypoint](https://github.com/hashicorp/waypoint) - A tool to build, deploy, and release any application on any platform # @cli [waypoint](https://github.com/hashicorp/waypoint) - A tool to build, deploy, and release any application on any platform
waypoint: waypoint:
brew: hashicorp/tap/waypoint brew: hashicorp/tap/waypoint
@ -1873,6 +1981,10 @@ softwarePackages:
cask: tabby cask: tabby
choco: tabby choco: tabby
github: github.com/Eugeny/tabby github: github.com/Eugeny/tabby
timeshift:
apt: timeshift
dnf: timeshift
yay: timeshift
skype: skype:
_type: application _type: application
_name: Skype _name: Skype
@ -1922,11 +2034,32 @@ softwarePackages:
choco: zoom choco: zoom
snap: zoom snap: zoom
yay: zoom yay: zoom
qlplugins:
cask:
- provisionql
- qlcolorcode
- qlimagesize
- qlmarkdown
- qlstephen
- qlvideo
- quicklook-json
- quicklookapk
- webpquicklook
softwarePlugins: softwarePlugins:
dotnet: dotnet:
cmd: # TODO
plugins: plugins:
- Microsoft.CST.AttackSurfaceAnalyzer.CLI - Microsoft.CST.AttackSurfaceAnalyzer.CLI
gh:
cmd: |
if [ -n "$GITHUB_TOKEN" ] && ! gh extension list | grep {PLUGIN}; then
gh extension install {PLUGIN}
fi
plugins:
- dlvhdr/gh-dash
- github/gh-net
- mislav/gh-cp
helm: helm:
plugins: plugins:
- https://github.com/databus23/helm-diff - https://github.com/databus23/helm-diff
@ -1948,22 +2081,11 @@ softwarePlugins:
- tunnel - tunnel
- view-allocations - view-allocations
- who-can - who-can
quicklook:
plugins:
- plugin: apparency
corporate: false
- provisionql
- qlcolorcode
- qlimagesize
- qlmarkdown
- qlstephen
- qlvideo
- quicklook-json
- quicklookapk
- plugin: suspicious-package
corporate: false
- webpquicklook
vagrant: vagrant:
cmd: |
if ! vagrant plugin list | grep {PLUGIN}; then
vagrant plugin install {PLUGIN}
fi
plugins: plugins:
- vagrant-bindfs - vagrant-bindfs
- vagrant-digitalocean - vagrant-digitalocean
@ -1974,6 +2096,7 @@ softwarePlugins:
- vagrant-vmware-desktop - vagrant-vmware-desktop
- vagrant-vbguest - vagrant-vbguest
vim: vim:
cmd:
plugins: plugins:
- https://github.com/dense-analysis/ale.git - https://github.com/dense-analysis/ale.git
- https://github.com/pearofducks/ansible-vim.git - https://github.com/pearofducks/ansible-vim.git
@ -2003,7 +2126,11 @@ softwarePlugins:
- https://github.com/nanotee/zoxide.vim.git - https://github.com/nanotee/zoxide.vim.git
# wget https://gitlab.com/megabyte-labs/gas-station/-/raw/master/environments/prod/group_vars/desktop/vscode-extensions.yml # wget https://gitlab.com/megabyte-labs/gas-station/-/raw/master/environments/prod/group_vars/desktop/vscode-extensions.yml
# yq e '.vscode_extensions[].name' vscode-extensions.yml # yq e '.vscode_extensions[].name' vscode-extensions.yml
visualStudioCode: vscode:
cmd: |
if test -n "$(find ~/.vscode/extensions -mindepth 1 -maxdepth 1 -type d -name "$(echo {PLUGIN} | tr "[:upper:]" "[:lower:]")*" -print -quit)"; then
code --install-extension "$(echo {PLUGIN} | tr "[:upper:]" "[:lower:]")"
fi
plugins: plugins:
- Angular.ng-template - Angular.ng-template
- attilabuti.vscode-mjml - attilabuti.vscode-mjml

View file

@ -17,6 +17,20 @@
url = "https://gitlab.com/megabyte-labs/misc/betelgeuse.git" url = "https://gitlab.com/megabyte-labs/misc/betelgeuse.git"
clone.args = ["--depth", "1"] clone.args = ["--depth", "1"]
pull.args = ["--ff-only"] pull.args = ["--ff-only"]
[".local/src/yoru"]
type = "git-repo"
url = "https://github.com/rxyhn/yoru.git"
refreshPeriod = "{{ $refreshPeriod }}"
clone.args = ["--depth", "1"]
pull.args = ["--ff-only"]
[".local/src/dracula"]
type = "git-repo"
url = "https://github.com/dracula/dracula-theme.git"
refreshPeriod = "{{ $refreshPeriod }}"
clone.args = ["--depth", "1"]
refreshPeriod = "{{ $refreshPeriod }}"
clone.args = ["--depth", "1"]
pull.args = ["--ff-only"]
### Shell ### Shell
[".config/desktop/gnome.yml"] [".config/desktop/gnome.yml"]
@ -93,6 +107,20 @@
url = "https://gitlab.com/megabyte-labs/gas-station.git" url = "https://gitlab.com/megabyte-labs/gas-station.git"
clone.args = ["--depth", "1"] clone.args = ["--depth", "1"]
pull.args = ["--ff-only"] pull.args = ["--ff-only"]
[".local/src/ansible-qubes"]
type = "git-repo"
url = "https://github.com/ProfessorManhattan/ansible-qubes.git"
refreshPeriod = "{{ $refreshPeriod }}"
clone.args = ["--depth", "1"]
pull.args = ["--ff-only"]
[".local/share/ansible/plugins/callback/beautiful_output.py"]
type = "file"
url = "https://github.com/Townk/ansible-beautiful-output/raw/master/callback_plugins/beautiful_output.py"
refreshPeriod = "{{ $refreshPeriod }}"
[".local/share/ansible/plugins/callback/bitwarden.py"]
type = "file"
url = "https://github.com/ProfessorManhattan/ansible-modules-bitwarden/raw/master/lookup_plugins/bitwarden.py"
refreshPeriod = "{{ $refreshPeriod }}"
### Packer ### Packer
[".local/src/packer/archlinux"] [".local/src/packer/archlinux"]

View file

@ -0,0 +1,30 @@
<?xml version="1.0"?>
<!--
** DO NOT EDIT THIS FILE.
** If you make changes to this file while any VirtualBox related application
** is running, your changes will be overwritten later, without taking effect.
** Use VBoxManage or the VirtualBox Manager GUI to make changes.
-->
<VirtualBox xmlns="http://www.virtualbox.org/" version="1.12-linux">
<Global>
<ExtraData>
<ExtraDataItem name="GUI/Details/Elements" value="general,system,preview,display,storage,audio,network,usb,sharedFolders,description"/>
<ExtraDataItem name="GUI/GroupDefinitions/" value="n=GLOBAL"/>
<ExtraDataItem name="GUI/LastItemSelected" value="n=GLOBAL"/>
<ExtraDataItem name="GUI/LastWindowPosition" value="341,164,683,404"/>
<ExtraDataItem name="GUI/SplitterSizes" value="226,456"/>
<ExtraDataItem name="GUI/Toolbar" value="false"/>
<ExtraDataItem name="GUI/Tools/LastItemsSelected" value="Welcome,Details"/>
<ExtraDataItem name="GUI/UpdateCheckCount" value="2"/>
<ExtraDataItem name="GUI/UpdateDate" value="1 d, 2021-12-15, stable, 6.1.30"/>
</ExtraData>
<MachineRegistry/>
<NetserviceRegistry>
<DHCPServers>
<DHCPServer networkName="HostInterfaceNetworking-vboxnet0" IPAddress="192.168.56.100" networkMask="255.255.255.0" lowerIP="192.168.56.101" upperIP="192.168.56.254" enabled="1"/>
</DHCPServers>
</NetserviceRegistry>
<SystemProperties defaultMachineFolder="/home/{{ .user.username }}/.local/virtualbox" defaultHardDiskFormat="VDI" VRDEAuthLibrary="VBoxAuth" webServiceAuthLibrary="VBoxAuth" LogHistoryCount="3" proxyMode="0" exclusiveHwVirt="true"/>
<USBDeviceFilters/>
</Global>
</VirtualBox>

View file

@ -0,0 +1,30 @@
<?xml version="1.0"?>
<!--
** DO NOT EDIT THIS FILE.
** If you make changes to this file while any VirtualBox related application
** is running, your changes will be overwritten later, without taking effect.
** Use VBoxManage or the VirtualBox Manager GUI to make changes.
-->
<VirtualBox xmlns="http://www.virtualbox.org/" version="1.12-linux">
<Global>
<ExtraData>
<ExtraDataItem name="GUI/Details/Elements" value="general,system,preview,display,storage,audio,network,usb,sharedFolders,description"/>
<ExtraDataItem name="GUI/GroupDefinitions/" value="n=GLOBAL"/>
<ExtraDataItem name="GUI/LastItemSelected" value="n=GLOBAL"/>
<ExtraDataItem name="GUI/LastWindowPosition" value="341,164,683,404"/>
<ExtraDataItem name="GUI/SplitterSizes" value="226,456"/>
<ExtraDataItem name="GUI/Toolbar" value="false"/>
<ExtraDataItem name="GUI/Tools/LastItemsSelected" value="Welcome,Details"/>
<ExtraDataItem name="GUI/UpdateCheckCount" value="2"/>
<ExtraDataItem name="GUI/UpdateDate" value="1 d, 2021-12-15, stable, 6.1.30"/>
</ExtraData>
<MachineRegistry/>
<NetserviceRegistry>
<DHCPServers>
<DHCPServer networkName="HostInterfaceNetworking-vboxnet0" IPAddress="192.168.56.100" networkMask="255.255.255.0" lowerIP="192.168.56.101" upperIP="192.168.56.254" enabled="1"/>
</DHCPServers>
</NetserviceRegistry>
<SystemProperties defaultMachineFolder="C:\Users\{{ .user.username }}\.local\virtualbox" defaultHardDiskFormat="VDI" VRDEAuthLibrary="VBoxAuth" webServiceAuthLibrary="VBoxAuth" LogHistoryCount="3" proxyMode="0" exclusiveHwVirt="true"/>
<USBDeviceFilters/>
</Global>
</VirtualBox>

View file

@ -164,6 +164,7 @@ async function beforeInstall(packageManager) {
elif [ "$PACKAGE_MANAGER" = 'apk' ]; then elif [ "$PACKAGE_MANAGER" = 'apk' ]; then
elif [ "$PACKAGE_MANAGER" = 'apt' ]; then elif [ "$PACKAGE_MANAGER" = 'apt' ]; then
sudo apt-get update sudo apt-get update
elif [ "$PACKAGE_MANAGER" = 'ansible' ]; then
elif [ "$PACKAGE_MANAGER" = 'basher' ]; then elif [ "$PACKAGE_MANAGER" = 'basher' ]; then
elif [ "$PACKAGE_MANAGER" = 'binary' ]; then elif [ "$PACKAGE_MANAGER" = 'binary' ]; then
elif [ "$PACKAGE_MANAGER" = 'bpkg' ]; then elif [ "$PACKAGE_MANAGER" = 'bpkg' ]; then
@ -179,6 +180,8 @@ async function beforeInstall(packageManager) {
elif [ "$PACKAGE_MANAGER" = 'nix' ]; then elif [ "$PACKAGE_MANAGER" = 'nix' ]; then
elif [ "$PACKAGE_MANAGER" = 'npm' ]; then elif [ "$PACKAGE_MANAGER" = 'npm' ]; then
elif [ "$PACKAGE_MANAGER" = 'pacman' ]; then elif [ "$PACKAGE_MANAGER" = 'pacman' ]; then
sudo pacman -Syu
elif [ "$PACKAGE_MANAGER" = 'pipx' ]; then
elif [ "$PACKAGE_MANAGER" = 'pkg' ]; then elif [ "$PACKAGE_MANAGER" = 'pkg' ]; then
elif [ "$PACKAGE_MANAGER" = 'port' ]; then elif [ "$PACKAGE_MANAGER" = 'port' ]; then
elif [ "$PACKAGE_MANAGER" = 'scoop' ]; then elif [ "$PACKAGE_MANAGER" = 'scoop' ]; then
@ -191,36 +194,32 @@ async function beforeInstall(packageManager) {
` `
} }
let packageManagerInstalled = {}
### Ensure the package manager is available ### Ensure the package manager is available
async function ensurePackageManager(packageManager) { async function ensurePackageManager(packageManager) {
if(packageManagerInstalled[packageManager]) {
return
} else {
packageManagerInstalled[packageManager] = true
}
const PACKAGE_MANAGER = packageManager const PACKAGE_MANAGER = packageManager
if(packageManager === 'ansible') {
await ensurePackageManager('pipx')
}
if(packageManager === 'gem' || packageManager === 'go' || packageManager === 'npm' || packageManager === 'pipx' || packageManager === 'whalebrew') {
await ensurePackageManager('brew')
}
await $` await $`
### Ensures Homebrew is installed
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
if command -v brew > /dev/null; then
logg warn 'Homebrew was installed but part of the installation failed. Attempting to fix..'
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
sudo chown -R "$(whoami)" "$(brew --prefix)/$BREW_DIR"
fi
done
brew update --force --quiet
fi
fi
fi
fi
}
if [ "$PACKAGE_MANAGER" = 'appimage' ]; then if [ "$PACKAGE_MANAGER" = 'appimage' ]; then
# Do nothing # Do nothing
elif [ "$PACKAGE_MANAGER" = 'ansible' ]; then
if [ ! -f "$HOME/.cache/megabytelabs/ansible-installed" ] || ! command -v ansible > /dev/null; then
pipx install ansible
pipx inject ansible PyObjC PyObjC-core docker lxml netaddr pexpect python-vagrant pywinrm requests-credssp watchdog
touch "$HOME/.cache/megabytelabs/ansible-installed"
else
logg '`ansible` and its supporting packages appear to be installed'
fi
elif [ "$PACKAGE_MANAGER" = 'apk' ]; then elif [ "$PACKAGE_MANAGER" = 'apk' ]; then
if command -v apk > /dev/null; then if command -v apk > /dev/null; then
logg '`apk` is available' logg '`apk` is available'
@ -251,7 +250,26 @@ async function ensurePackageManager(packageManager) {
if command -v brew > /dev/null; then if command -v brew > /dev/null; then
logg '`brew` is available' logg '`brew` is available'
else else
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
if command -v brew > /dev/null; then
logg warn 'Homebrew was installed but part of the installation failed. Attempting to fix..'
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
sudo chown -R "$(whoami)" "$(brew --prefix)/$BREW_DIR"
fi
done
brew update --force --quiet
fi
fi
fi
fi
fi fi
elif [ "$PACKAGE_MANAGER" = 'cargo' ]; then elif [ "$PACKAGE_MANAGER" = 'cargo' ]; then
if command -v cargo > /dev/null; then if command -v cargo > /dev/null; then
@ -285,13 +303,34 @@ async function ensurePackageManager(packageManager) {
if command -v flatpak > /dev/null; then if command -v flatpak > /dev/null; then
logg '`flatpak` is available' logg '`flatpak` is available'
else else
ensurePackageManagerHomebrew if command -v apk > /dev/null; then
sudo apk add flatpak
elif command -v apt > /dev/null; then
sudo apt install -y flatpak
if [ -f /usr/bin/gnome-shell ]; then
sudo apt install -y gnome-software-plugin-flatpak
fi
if [ -f /usr/bin/plasmashell ]; then
sudo apt install -y plasmashell
fi
elif command -v dnf > /dev/null; then
sudo dnf install -y flatpak
elif command -v yum > /dev/null; then
sudo yum install -y flatpak
elif command -v pacman > /dev/null; then
sudo pacman -S flatpak
elif command -v xbps-install > /dev/null; then
sudo xbps-install -S flatpak
elif command -v zypper > /dev/null; then
sudo zypper install -y flatpak
fi
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
logg warn '`flatpak` may require a reboot to work properly'
fi fi
elif [ "$PACKAGE_MANAGER" = 'gem' ]; then elif [ "$PACKAGE_MANAGER" = 'gem' ]; then
if command -v gem > /dev/null; then if command -v gem > /dev/null; then
logg '`gem` is available' logg '`gem` is available'
else else
ensurePackageManagerHomebrew
# TODO - is this enough to make `gem install` available? # TODO - is this enough to make `gem install` available?
brew install ruby brew install ruby
fi fi
@ -299,7 +338,6 @@ async function ensurePackageManager(packageManager) {
if command -v go > /dev/null; then if command -v go > /dev/null; then
logg '`go` is available' logg '`go` is available'
else else
ensurePackageManagerHomebrew
brew install go brew install go
fi fi
elif [ "$PACKAGE_MANAGER" = 'nix' ]; then elif [ "$PACKAGE_MANAGER" = 'nix' ]; then
@ -317,7 +355,6 @@ async function ensurePackageManager(packageManager) {
logg '`volta`, `npm`, and `node` are all available' logg '`volta`, `npm`, and `node` are all available'
else else
if ! command -v volta > /dev/null; then if ! command -v volta > /dev/null; then
ensurePackageManagerHomebrew
if ! command -v volta > /dev/null; then if ! command -v volta > /dev/null; then
logg 'Installing `volta` via `brew`' logg 'Installing `volta` via `brew`'
brew install volta brew install volta
@ -336,6 +373,13 @@ async function ensurePackageManager(packageManager) {
else else
logg '`pacman` is not installed' && exit 106 logg '`pacman` is not installed' && exit 106
fi fi
elif [ "$PACKAGE_MANAGER" = 'pipx' ]; then
if command -v pipx > /dev/null; then
logg '`pipx` is available'
else
brew install pipx
pipx ensurepath
fi
elif [ "$PACKAGE_MANAGER" = 'pkg' ]; then elif [ "$PACKAGE_MANAGER" = 'pkg' ]; then
if command -v pkg > /dev/null; then if command -v pkg > /dev/null; then
logg '`pkg` is available' logg '`pkg` is available'
@ -405,7 +449,6 @@ async function ensurePackageManager(packageManager) {
if command -v whalebrew > /dev/null; then if command -v whalebrew > /dev/null; then
logg '`whalebrew` is available' logg '`whalebrew` is available'
else else
ensurePackageManagerHomebrew
logg 'Installing `whalebrew` via `brew`' logg 'Installing `whalebrew` via `brew`'
brew install whalebrew brew install whalebrew
fi fi
@ -448,6 +491,7 @@ async function installPackageList(packageManager, packages) {
sudo apk add ${PACKAGES} sudo apk add ${PACKAGES}
elif [ "$PACKAGE_MANAGER" = 'apt' ]; then elif [ "$PACKAGE_MANAGER" = 'apt' ]; then
sudo apt-get install -y ${PACKAGES} sudo apt-get install -y ${PACKAGES}
elif [ "$PACKAGE_MANAGER" = 'ansible' ]; then
elif [ "$PACKAGE_MANAGER" = 'basher' ]; then elif [ "$PACKAGE_MANAGER" = 'basher' ]; then
elif [ "$PACKAGE_MANAGER" = 'binary' ]; then elif [ "$PACKAGE_MANAGER" = 'binary' ]; then
elif [ "$PACKAGE_MANAGER" = 'bpkg' ]; then elif [ "$PACKAGE_MANAGER" = 'bpkg' ]; then
@ -479,6 +523,7 @@ async function installPackageList(packageManager, packages) {
volta install ${PACKAGES} volta install ${PACKAGES}
elif [ "$PACKAGE_MANAGER" = 'pacman' ]; then elif [ "$PACKAGE_MANAGER" = 'pacman' ]; then
sudo pacman -Sy --noconfirm --needed ${PACKAGES} sudo pacman -Sy --noconfirm --needed ${PACKAGES}
elif [ "$PACKAGE_MANAGER" = 'pipx' ]; then
elif [ "$PACKAGE_MANAGER" = 'pkg' ]; then elif [ "$PACKAGE_MANAGER" = 'pkg' ]; then
# TODO # TODO
elif [ "$PACKAGE_MANAGER" = 'port' ]; then elif [ "$PACKAGE_MANAGER" = 'port' ]; then

View file

@ -0,0 +1,13 @@
#!/usr/bin/env bash
{{ $exeFiles := (output "find" (joinPath .chezmoi.homeDir ".local" "bin") "-mindepth" "1" "-maxdepth" "1" "-type" "f") -}}
{{- range $exeFile := splitList "\n" $exeFiles -}}
{{- if ne $exeFile "" -}}
# {{ $exeFile }}
{{ end -}}
{{- end }}
### Ensure all files in ~/.local/bin are executable
find "$HOME/.local/bin" -mindepth 1 -maxdepth 1 -type f | while read EXE_FILE; do
chmod +x "$EXE_FILE"
done

View file

@ -0,0 +1,4 @@
{{- if true -}}
{{ .host.home }}/.local/src/ansible-qubes/bin/bombshell-client
{{- end -}}

View file

@ -0,0 +1,4 @@
{{- if true -}}
{{ .host.home }}/.local/src/ansible-qubes/bin/qrun
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if true -}}
{{ .host.home }}/.local/src/ansible-qubes/bin/qssh
{{- end -}}

View file

@ -0,0 +1,4 @@
{{- if true -}}
{{ .host.home }}/.local/src/ansible-qubes/bin/qssh
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if .host.qubes -}}
{{ .host.home }}/.local/src/ansible-qubes/action_plugins/commonlib.py
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if .host.qubes -}}
{{ .host.home }}/.local/src/ansible-qubes/action_plugins/qubes_pass.py
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if .host.qubes -}}
{{ .host.home }}/.local/src/ansible-qubes/action_plugins/qubesformation.py
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if .host.qubes -}}
{{ .host.home }}/.local/src/ansible-qubes/action_plugins/qubesguid.py
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if .host.qubes -}}
{{ .host.home }}/.local/src/ansible-qubes/action_plugins/qubessls.py
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if .host.qubes -}}
{{ .host.home }}/.local/src/ansible-qubes/connection_plugins/qubes.py
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if .host.qubes -}}
{{ .host.home }}/.local/src/ansible-qubes/library/qubes_pass.py
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if .host.qubes -}}
{{ .host.home }}/.local/src/ansible-qubes/library/qubesformation.py
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if .host.qubes -}}
{{ .host.home }}/.local/src/ansible-qubes/library/qubesguid.py
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if .host.qubes -}}
{{ .host.home }}/.local/src/ansible-qubes/library/qubessls.py
{{- end -}}

View file

@ -0,0 +1,4 @@
{{- if .host.qubes -}}
{{ .host.home }}/.local/src/ansible-qubes/lookup_plugins/jq.py
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if .host.qubes -}}
{{ .host.home }}/.local/src/ansible-qubes/lookup_plugins/qubes-pass.py
{{- end -}}

View file

@ -0,0 +1,13 @@
#!/usr/bin/env bash
{{ $roleDirs := (output "find" (joinPath .chezmoi.homeDir ".local" "src" "gas-station" "roles") "-mindepth" "2" "-maxdepth" "2" "-type" "d") -}}
{{- range $roleDir := splitList "\n" $roleDirs -}}
{{- if ne $roleDir "" -}}
# {{ $roleDir }}
{{ end -}}
{{- end }}
find "$HOME/.local/src/gas-station/roles" -mindepth 2 -maxdepth 2 -type d | while read ROLE_PATH; do
ROLE_FOLDER="professormanhattan.$(echo "$ROLE_PATH" | sed 's/.*\/\([^\/]*\)$/\1/')"
ln -s "$ROLE_PATH" "$XDG_DATA_HOME/ansible/roles/$ROLE_FOLDER"
fi

View file

@ -0,0 +1,21 @@
#!/usr/bin/env bash
### Symlink the variables / files / inventories to ~/.config/ansible folders if they are present
### i.e. Changes to upstream will not impact the play if your configuration files are stored locally
for TARGET of "files" "group_vars" "host_vars" "inventories" "templates"; do
if [ -d "$HOME/.config/ansible/$TARGET" ] && [ "$(readlink -f "$HOME/.local/share/ansible/$TARGET")" != "$HOME/.config/ansible/$TARGET" ]; then
logg 'Symlinking Ansible playbook `'"$TARGET"'` to ~/.config/ansible/$TARGET'
rm -f "$HOME/.local/share/ansible/$TARGET"
ln -s "$HOME/.config/ansible/$TARGET" "$HOME/.local/share/ansible/$TARGET"
fi
done
### Symlink tasks as well
### Note: Only handles tasks one level deep (i.e. ~/.config/ansible/tasks/my-task.yml will link to the tasks folder
### but ~/.config/ansible/tasks/directory/my-other-task.yml will not)
find "$HOME/.config/ansible/tasks" -type f | while read TASK_FILE; do
TASK_FILE_NAME="$(echo "$TASK_FILE" | sed 's/.*\/\([^\/]*\)$/\1/')"
if [ "$(readlink -f "$HOME/.local/share/ansible/tasks/$TASK_FILE_NAME")" != "$TASK_FILE" ]; then
ln -s "$TASK_FILE" "$HOME/.local/share/ansible/tasks/$TASK_FILE_NAME"
fi
done

View file

@ -0,0 +1,3 @@
{{- if true -}}
{{ .host.home }}/.local/src/gas-station/README.md
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if true -}}
{{ .host.home }}/.local/src/gas-station/Vagrantfile
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if true -}}
{{ .host.home }}/.local/src/gas-station/ansible.cfg
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if true -}}
{{ .host.home }}/.local/src/gas-station/docs
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if true -}}
{{ .host.home }}/.local/src/gas-station/docs
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if true -}}
{{ .host.home }}/.local/src/gas-station/main.yml
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if true -}}
{{ .host.home }}/.local/src/gas-station/playbooks
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if true -}}
{{ .host.home }}/.local/src/gas-station/playbooks
{{- end -}}

View file

@ -0,0 +1,3 @@
{{- if true -}}
{{ .host.home }}/.local/src/gas-station/tasks/qubes
{{- end -}}

View file

@ -0,0 +1,30 @@
<?xml version="1.0"?>
<!--
** DO NOT EDIT THIS FILE.
** If you make changes to this file while any VirtualBox related application
** is running, your changes will be overwritten later, without taking effect.
** Use VBoxManage or the VirtualBox Manager GUI to make changes.
-->
<VirtualBox xmlns="http://www.virtualbox.org/" version="1.12-linux">
<Global>
<ExtraData>
<ExtraDataItem name="GUI/Details/Elements" value="general,system,preview,display,storage,audio,network,usb,sharedFolders,description"/>
<ExtraDataItem name="GUI/GroupDefinitions/" value="n=GLOBAL"/>
<ExtraDataItem name="GUI/LastItemSelected" value="n=GLOBAL"/>
<ExtraDataItem name="GUI/LastWindowPosition" value="341,164,683,404"/>
<ExtraDataItem name="GUI/SplitterSizes" value="226,456"/>
<ExtraDataItem name="GUI/Toolbar" value="false"/>
<ExtraDataItem name="GUI/Tools/LastItemsSelected" value="Welcome,Details"/>
<ExtraDataItem name="GUI/UpdateCheckCount" value="2"/>
<ExtraDataItem name="GUI/UpdateDate" value="1 d, 2021-12-15, stable, 6.1.30"/>
</ExtraData>
<MachineRegistry/>
<NetserviceRegistry>
<DHCPServers>
<DHCPServer networkName="HostInterfaceNetworking-vboxnet0" IPAddress="192.168.56.100" networkMask="255.255.255.0" lowerIP="192.168.56.101" upperIP="192.168.56.254" enabled="1"/>
</DHCPServers>
</NetserviceRegistry>
<SystemProperties defaultMachineFolder="/home/{{ .user.username }}/.local/virtualbox" defaultHardDiskFormat="VDI" VRDEAuthLibrary="VBoxAuth" webServiceAuthLibrary="VBoxAuth" LogHistoryCount="3" proxyMode="0" exclusiveHwVirt="true"/>
<USBDeviceFilters/>
</Global>
</VirtualBox>

View file

@ -1 +1,4 @@
cointop
google-assistant
translate-shell
qlplugins

View file

@ -1 +1,76 @@
act
altair
android-studio
appium
aquasecurity/trivy/trivy
awscli
azure-cli
balenaetcher
bitwarden
bun
codeclimate
consul-template
dive
docker
docker-slim
exiftool
ffmpeg
firefox
gh
gimp
git-filter-repo
git-subrepo
gitlab-runner
gitleaks
glab
go
goodwithtech/r/dockle
goofys
google-chrome
google-cloud-sdk
gradle
hashicorp/tap/waypoint
helm
htmlq
hudochenkov/sshpass/sshpass
java
juju
kubectx
kubernetes-cli
lens
librsvg
macfuse
microsoft-teams
minio/stable/mc
mitmproxy
nomad
oq
packer
pandoc
parallels
pgcli
poetry
postman
python
ruby
scrcpy
sdkman
shc
skype
slack
teamviewer
teleport
terraform
tfenv
tokei
upx
vagrant
virtualbox
vscode
vmware
watchman
wireshark
wireshark
wkhtmltopdf
yank
yarn

View file

@ -1 +1,99 @@
aria2
asdf
automake
autorestic
bandwhich
bat
bitwarden-cli
cheat
chezmoi
choose
cloudflared
cmake
coreutils
croc
ctop
curl
curlie
dasel
deno
difftastic
direnv
duf
dust
etcd
exa
fd
ffsend
fq
fselect
fx
fzf
gist
git
git-delta
git-lfs
git-secret
gitui
glances
glow
go-task/tap/go-task
gomplate
googler
gping
grex
gron
gum
hexyl
hey
htop
hyperfine
imagemagick
jo
jq
jq
litecli
m-cli
mcfly
mkcert
mycli
nb
nmap
nnn
node
openssh
ots
pass
peco
pnpm
procs
pup
pywhat
rclone
restic
ripgrep
ripgrep-all
rm-improved
rsync
sd
shellcheck
sops
sqlite
ssh-vault
sysbench
t-rec
teller
tmux
tree
up
vault
vim
volta
watchexec
wget
whalebrew
yj
yq
zoxide
zsh
zx

View file

@ -110,7 +110,9 @@ alias myip='curl http://ipecho.net/plain; echo'
alias mylocalip="ifconfig | grep -Eo 'inet (addr:|adr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'" alias mylocalip="ifconfig | grep -Eo 'inet (addr:|adr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'"
# Link pip to pip3 # Link pip to pip3
alias pip='pip3' if ! command -v pip > /dev/null; then
alias pip='pip3'
fi
# Show open ports # Show open ports
alias ports='sudo netstat -tulanp' alias ports='sudo netstat -tulanp'

View file

@ -34,7 +34,7 @@ export GTK_RC_FILES="$XDG_CONFIG_HOME/gtk-1.0/gtkrc"
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc" export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc"
### PATH ### PATH
export PATH="$PATH:$HOME/.local/bin" export PATH="$HOME/.local/bin:$PATH"
export SSH_KEY_PATH="~/.ssh/id_rsa" export SSH_KEY_PATH="~/.ssh/id_rsa"
### Homebrew ### Homebrew
@ -63,6 +63,10 @@ fi
{{ end }} {{ end }}
export ANDROID_SDK_HOME="$XDG_DATA_HOME/android-sdk" export ANDROID_SDK_HOME="$XDG_DATA_HOME/android-sdk"
### Ansible
export ANSIBLE_CONFIG="$HOME/.local/ansible/ansible.cfg"
export ANSIBLE_HOME="$HOME/.local/ansible"
### Aqua ### Aqua
export AQUA_ROOT_DIR="$XDG_DATA_HOME/aqua" export AQUA_ROOT_DIR="$XDG_DATA_HOME/aqua"
export AQUA_GLOBAL_CONFIG="$XDG_CONFIG_HOME/aqua/aqua.yaml" export AQUA_GLOBAL_CONFIG="$XDG_CONFIG_HOME/aqua/aqua.yaml"

View file

@ -3,3 +3,8 @@
url = "https://gitlab.com/megabyte-labs/cloud/nginx-configs.git" url = "https://gitlab.com/megabyte-labs/cloud/nginx-configs.git"
clone.args = ["--depth", "1"] clone.args = ["--depth", "1"]
pull.args = ["--ff-only"] pull.args = ["--ff-only"]
["/var/lib/rundeck/libext/ansible-plugin-3.2.2.jar"]
type = "file"
url = "https://github.com/rundeck-plugins/ansible-plugin/releases/download/v3.2.2/ansible-plugin-3.2.2.jar"
refreshPeriod = "{{ $refreshPeriod }}"

View file

@ -0,0 +1,24 @@
{
"backup_device_uuid" : "",
"parent_device_uuid" : "",
"do_first_run" : "true",
"btrfs_mode" : "true",
"include_btrfs_home" : "false",
"stop_cron_emails" : "true",
"schedule_monthly" : "false",
"schedule_weekly" : "false",
"schedule_daily" : "false",
"schedule_hourly" : "false",
"schedule_boot" : "false",
"count_monthly" : "0",
"count_weekly" : "2",
"count_daily" : "4",
"count_hourly" : "8",
"count_boot" : "0",
"snapshot_size" : "0",
"snapshot_count" : "0",
"exclude" : [
],
"exclude-apps" : [
]
}

View file

@ -166,20 +166,3 @@ cask "wireshark"
# Pandoc optional dependency # Pandoc optional dependency
cask "basictex" cask "basictex"
# Examples below
# 'brew install --with-rmtp', 'brew services restart' on version changes
# brew "denji/nginx/nginx-full", args: ["with-rmtp"], restart_service: :changed
# 'brew install', always 'brew services restart', 'brew link', 'brew unlink mysql' (if it is installed)
# brew "mysql@5.6", restart_service: true, link: true, conflicts_with: ["mysql"]
# 'brew install --cask'
# cask "google-chrome"
# 'brew install --cask --appdir=~/my-apps/Applications'
# cask "firefox", args: { appdir: "~/my-apps/Applications" }
# always upgrade auto-updated or unversioned cask to latest version even if already installed
# cask "opera", greedy: true
# 'brew install --cask' only if '/usr/libexec/java_home --failfast' fails
# cask "java" unless system "/usr/libexec/java_home --failfast"
# 'mas install'
# mas "1Password", id: 443987910
# 'whalebrew install'
# whalebrew "whalebrew/wget"