Latest
This commit is contained in:
parent
8a5480fdf8
commit
a3004df675
18 changed files with 593 additions and 561 deletions
|
@ -980,7 +980,6 @@ softwareGroups:
|
|||
Virtualization-Desktop: &Virtualization-Desktop
|
||||
- docker-desktop
|
||||
- gnome-boxes
|
||||
- orbstack
|
||||
- parallels
|
||||
- quickgui
|
||||
- utm
|
||||
|
@ -1412,6 +1411,8 @@ softwareGroups:
|
|||
note: Deprecated in favor of using ASDF.
|
||||
- pkg: nuclear
|
||||
note: Music app - UI is horrendous
|
||||
- pkg: orbstack
|
||||
note: Faster / better alternative to Docker Desktop on macOS. Deprecated because it does not support Docker Extensions and is only for macOS.
|
||||
- pkg: pip
|
||||
note: The `pip` installation is handled by the `install-software` program bundled with Install Doctor.
|
||||
- pkg: pipx
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
type = "file"
|
||||
url = "https://gitlab.com/megabyte-labs/gas-station/-/raw/master/environments/prod/group_vars/all/helm.yml"
|
||||
refreshPeriod = "{{ $refreshPeriod }}"
|
||||
[".local/bash_it"]
|
||||
[".local/share/bash_it"]
|
||||
type = "git-repo"
|
||||
url = "https://github.com/Bash-it/bash-it.git"
|
||||
refreshPeriod = "{{ $refreshPeriod }}"
|
||||
|
|
|
@ -24,10 +24,13 @@
|
|||
{{ includeTemplate "universal/profile" }}
|
||||
{{ includeTemplate "universal/logg" }}
|
||||
|
||||
function gitomaticSetup() {
|
||||
### Clone the repositories
|
||||
logg info 'Cloning the repositories'
|
||||
{{ range .user.gitomatic }}
|
||||
logg info 'Checking for presence of {{ .path }}'
|
||||
if [ ! -d "{{ .path }}" ]; then
|
||||
logg info 'Cloning {{ .git }} to {{ .path }}'
|
||||
git clone "{{ .git }}" "{{ .path }}"
|
||||
fi
|
||||
{{ end -}}
|
||||
|
@ -38,10 +41,10 @@ if command -v gitomatic > /dev/null; then
|
|||
### macOS
|
||||
logg info 'Copying `gitomatic` plist file to /Library/LaunchDaemons'
|
||||
sudo cp -f "{{ .chezmoi.homeDir }}/.config/gitomatic/gitomatic.plist" /Library/LaunchDaemons/gitomatic.plist
|
||||
logg info 'Running `sudo launchctl load com.gitomatic`'
|
||||
sudo launchctl load com.gitomatic
|
||||
logg info 'Running `sudo launchctl start com.gitomatic`'
|
||||
sudo launchctl start com.gitomatic
|
||||
logg info 'Running `sudo launchctl load gitomatic`'
|
||||
sudo launchctl load gitomatic
|
||||
logg info 'Running `sudo launchctl start gitomatic`'
|
||||
sudo launchctl start gitomatic
|
||||
else
|
||||
### Linux
|
||||
logg info 'Copying `gitomatic` systemd unit file to /etc/systemd/system/'
|
||||
|
@ -54,4 +57,6 @@ if command -v gitomatic > /dev/null; then
|
|||
else
|
||||
logg info 'Git-o-matic is not installed or it is not available in PATH'
|
||||
fi
|
||||
}
|
||||
gitomaticSetup
|
||||
{{ end -}}
|
||||
|
|
|
@ -6,8 +6,11 @@
|
|||
# This script pre-installs the VIM plugins defined in [`.chezmoidata.yaml`](https://github.com/megabyte-labs/install.doctor/tree/master/home/.chezmoidata.yaml)
|
||||
# so that VIM does not have to do anything on its first launch.
|
||||
|
||||
function vimSetup() {
|
||||
### Run the VIM plugin install routine
|
||||
if command -v vim > /dev/null; then
|
||||
vim +PlugInstall +qall 2>/dev/null
|
||||
vim +PlugInstall +qall 2>/dev/null && logg success 'Successfully ran `vim +PlugInstall +qall`' || logg error 'Failed to run `vim +PlugInstall +qll`'
|
||||
fi
|
||||
}
|
||||
vimSetup
|
||||
{{ end -}}
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
{{ includeTemplate "universal/profile" }}
|
||||
{{ includeTemplate "universal/logg" }}
|
||||
|
||||
function chromeSetUp() {
|
||||
### Ensure Chrome policies directory is present
|
||||
for POLICY_DIR in "/opt/google/chrome/policies" "/etc/chromium/policies" "/etc/brave/policies"; do
|
||||
if [ -d "$(dirname "$POLICY_DIR")" ]; then
|
||||
|
@ -86,5 +87,7 @@ for EXTENSION_DIR in "/opt/google/chrome/extensions" "/etc/chromium/extensions"
|
|||
logg info "$EXTENSION_DIR does not exist"
|
||||
fi
|
||||
done
|
||||
}
|
||||
chromeSetUp
|
||||
|
||||
{{ end -}}
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
|
||||
# Firefox plugins: {{ list (.firefoxAddOns | toString | replace "[" "" | replace "]" "") | uniq | join " " }}
|
||||
|
||||
function firefoxSetup() {
|
||||
### Installs the Firefox Profile Connector on Linux systems (Snap / Flatpak installs are not included in this function, but instead inline below)
|
||||
function installFirefoxProfileConnector() {
|
||||
logg info 'Installing the Firefox Profile Connector'
|
||||
|
@ -322,5 +323,6 @@ for SETTINGS_DIR in "$HOME/snap/firefox/common/.mozilla/firefox" "$HOME/.var/app
|
|||
done
|
||||
fi
|
||||
done
|
||||
|
||||
}
|
||||
firefoxSetup
|
||||
{{ end -}}
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
{{- if ne .host.distro.family "windows" -}}
|
||||
#!/usr/bin/env bash
|
||||
# @file Vagrant VMWare Utility
|
||||
# @brief Installs the `vagrant-vmware-utility` if both Vagrant and VMWare are installed
|
||||
# @description
|
||||
# This script first checks if `vagrant`, `vmware`, and `vagrant-vmware-utility` are available in the `PATH`. If they are present, then the script
|
||||
# configures the [`vagrant-vmware-utility`](https://developer.hashicorp.com/vagrant/docs/providers/vmware/vagrant-vmware-utility) by generating the required security certificates and enabling the service.
|
||||
# This system package enables the capability of controlling both VMWare Workstation and VMWare Fusion with Vagrant.
|
||||
#
|
||||
# Since this script runs only when `vagrant`, `vmware`, and `vagrant-vmware-utility` are in the `PATH`, this means that it will run
|
||||
# when you use an installation template that includes all three pieces of software in the software list defined in
|
||||
# `home/.chezmoidata.yaml`.
|
||||
#
|
||||
# ## Links
|
||||
#
|
||||
# * [Vagrant VMWare Utility on GitHub](https://github.com/hashicorp/vagrant-vmware-desktop)
|
||||
# * [`home/.chezmoidata.yaml`](https://github.com/megabyte-labs/install.doctor/blob/master/home/.chezmoidata.yaml)
|
||||
|
||||
{{ includeTemplate "universal/profile" }}
|
||||
{{ includeTemplate "universal/logg" }}
|
||||
|
||||
# @description Only run logic if both Vagrant and VMWare are installed
|
||||
if command -v vagrant > /dev/null && command -v vmware-id > /dev/null; then
|
||||
# @description Vagrant VMWare Utility configuration
|
||||
if command -v vagrant-vmware-utility > /dev/null; then
|
||||
if [ -f /usr/local/bin/certificates/vagrant-utility.key ]; then
|
||||
logg info 'Assuming Vagrant VMWare Utility certificates have been properly generated since /usr/local/bin/certificates/vagrant-utility.key is present'
|
||||
else
|
||||
logg info 'Generating Vagrant VMWare Utility certificates'
|
||||
sudo vagrant-vmware-utility certificate generate
|
||||
logg success 'Generated Vagrant VMWare Utility certificates via `vagrant-vmware-utility certificate generate`'
|
||||
fi
|
||||
logg info 'Ensuring the Vagrant VMWare Utility service is enabled'
|
||||
sudo vagrant-vmware-utility service install || EXIT_CODE=$?
|
||||
if [ -n "$EXIT_CODE" ]; then
|
||||
logg info 'The Vagrant VMWare Utility command `vagrant-vmware-utility service install` failed. It is probably already setup.'
|
||||
fi
|
||||
fi
|
||||
else
|
||||
logg info 'Vagrant is not installed so the Vagrant plugins will not be installed'
|
||||
logg info 'Vagrant or VMWare is not installed so the Vagrant VMWare utility will not be configured'
|
||||
fi
|
||||
|
||||
{{ end -}}
|
|
@ -1,76 +0,0 @@
|
|||
{{- if eq .host.distro.family "linux" -}}
|
||||
{{- $softwareGroup := nospace (cat "_" .host.softwareGroup) -}}
|
||||
{{- $softwareList := list (index .softwareGroups $softwareGroup | toString | replace "[" "" | replace "]" "") | uniq | join " " -}}
|
||||
{{- if (contains " vmware" $softwareList) -}}
|
||||
#!/usr/bin/env bash
|
||||
# @file Linux VMWare Workstation Install
|
||||
# @brief Installs VMWare Workstation Pro on Linux devices, applies a "publicly-retrieved" license key (see disclaimer), and automatically accepts the terms and conditions
|
||||
# @description
|
||||
# This script ensures the user included `vmware` in their software installation list. It then checks for presence of the `vmware` utility. If it is not present, then the script:
|
||||
#
|
||||
# 1. Downloads the [VMWare Workstation Pro](https://www.vmware.com/content/vmware/vmware-published-sites/us/products/workstation-pro.html.html) Linux installer
|
||||
# 2. Installs VMWare Workstation Pro
|
||||
# 3. Passes options to the installation script that automatically apply a publicly retrived license key and accept the Terms & Conditions
|
||||
#
|
||||
# **DISCLAIMER:** If you plan on using VMWare Workstation for anything but evaluation purposes, then we highly suggest purchasing a copy
|
||||
# of VMWare Workstation. The "publicly-retrived" license keys are scattered throughout GitHub and we are not exactly
|
||||
# sure why they work. You can pass in your own key by utilizing the `VMWARE_WORKSTATION_LICENSE_KEY` environment variable. More details on
|
||||
# using environment variables or repository-housed encrypted secrets can be found in our [Secrets documentation](https://install.doctor/docs/customization/secrets).
|
||||
#
|
||||
# ## VMWare on macOS
|
||||
#
|
||||
# This script only installs VMWare Workstation on Linux. The macOS-variant titled VMWare Fusion can be installed using a Homebrew
|
||||
# cask so a "work-around" script does not have to be used.
|
||||
#
|
||||
# ## VMWare vs. Parallels vs. VirtualBox vs. KVM vs. Hyper-V
|
||||
#
|
||||
# There are a handful of VM virtualization providers you can choose from. VMWare is a nice compromise between OS compatibility and performance.
|
||||
# Parallels, on the hand, might be better for macOS since it is designed specifically for macOS. Finally, VirtualBox is a truly free,
|
||||
# open-source option that does not come with the same optimizations that VMWare and Parallels provide.
|
||||
#
|
||||
# Other virtualization options include KVM (Linux / macOS) and Hyper-V (Windows). These options are better used for headless
|
||||
# systems.
|
||||
#
|
||||
# ## Links
|
||||
#
|
||||
# * [VMWare Workstation homepage](https://www.vmware.com/content/vmware/vmware-published-sites/us/products/workstation-pro.html.html)
|
||||
|
||||
|
||||
{{- $secretKey := "" -}}
|
||||
{{- if (stat (joinPath (.chezmoi.sourceDir ".chezmoitemplates" "secrets" "VMWARE_WORKSTATION_LICENSE_KEY"))) -}}
|
||||
{{- $secretKey = (default "4C21U-2KK9Q-M8130-4V2QH-CF810" (includeTemplate "secrets/VMWARE_WORKSTATION_LICENSE_KEY" | decrypt | trim)) -}}
|
||||
{{- else -}}
|
||||
{{- $secretKey = (default "4C21U-2KK9Q-M8130-4V2QH-CF810" (env "VMWARE_WORKSTATION_LICENSE_KEY")) -}}
|
||||
{{- end }}
|
||||
|
||||
# Source: https://gist.github.com/PurpleVibe32/30a802c3c8ec902e1487024cdea26251
|
||||
# key: {{ $secretKey }}
|
||||
|
||||
{{ includeTemplate "universal/profile-before" }}
|
||||
{{ includeTemplate "universal/logg-before" }}
|
||||
|
||||
### Install VMware Workstation
|
||||
if ! command -v vmware > /dev/null; then
|
||||
### Download VMWare Workstation
|
||||
logg info 'VMware Workstation is not installed'
|
||||
VMWARE_WORKSTATION_URL=https://www.vmware.com/go/getworkstation-linux
|
||||
VMWARE_WORKSTATION_DIR=/tmp/workstation-downloads
|
||||
mkdir -p $VMWARE_WORKSTATION_DIR
|
||||
logg info 'Downloading VMware Workstation Installer'
|
||||
curl -sSLA "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20220101 Firefox/102.0" "$VMWARE_WORKSTATION_URL" -o "$VMWARE_WORKSTATION_DIR/tryworkstation-linux-64.sh"
|
||||
|
||||
### Register product key / license
|
||||
VMWARE_WORKSTATION_LICENSE_KEY='{{- $secretKey -}}'
|
||||
if [ -n "$VMWARE_WORKSTATION_LICENSE_KEY" ]; then
|
||||
logg info 'Registering VMware Workstation Pro license with serial number'
|
||||
sudo "$VMWARE_WORKSTATION_DIR/tryworkstation-linux-64.sh" --eulas-agreed --console --required --set-setting vmware-workstation serialNumber "$VMWARE_WORKSTATION_LICENSE_KEY"
|
||||
else
|
||||
logg info 'Agreeing to VMWare Workstation Pro license (without serial number)'
|
||||
sudo "$VMWARE_WORKSTATION_DIR/tryworkstation-linux-64.sh" --eulas-agreed --console --required
|
||||
fi
|
||||
logg success 'VMware Workstation installed successfully'
|
||||
else
|
||||
logg info 'VMware Workstation is already installed'
|
||||
fi
|
||||
{{ end -}}
|
||||
{{ end -}}
|
|
@ -1,13 +1,101 @@
|
|||
{{- if eq .host.distro.family "linux" -}}
|
||||
#!/usr/bin/env bash
|
||||
# @file Linux VMWare Workstation Install
|
||||
# @brief Installs VMWare Workstation Pro on Linux devices, applies a "publicly-retrieved" license key (see disclaimer), and automatically accepts the terms and conditions
|
||||
# @description
|
||||
# This script ensures the user included `vmware` in their software installation list. It then checks for presence of the `vmware` utility. If it is not present, then the script:
|
||||
#
|
||||
# 1. Downloads the [VMWare Workstation Pro](https://www.vmware.com/content/vmware/vmware-published-sites/us/products/workstation-pro.html.html) Linux installer
|
||||
# 2. Installs VMWare Workstation Pro
|
||||
# 3. Passes options to the installation script that automatically apply a publicly retrived license key and accept the Terms & Conditions
|
||||
#
|
||||
# **DISCLAIMER:** If you plan on using VMWare Workstation for anything but evaluation purposes, then we highly suggest purchasing a copy
|
||||
# of VMWare Workstation. The "publicly-retrived" license keys are scattered throughout GitHub and we are not exactly
|
||||
# sure why they work. You can pass in your own key by utilizing the `VMWARE_WORKSTATION_LICENSE_KEY` environment variable. More details on
|
||||
# using environment variables or repository-housed encrypted secrets can be found in our [Secrets documentation](https://install.doctor/docs/customization/secrets).
|
||||
#
|
||||
# ## VMWare on macOS
|
||||
#
|
||||
# This script only installs VMWare Workstation on Linux. The macOS-variant titled VMWare Fusion can be installed using a Homebrew
|
||||
# cask so a "work-around" script does not have to be used.
|
||||
#
|
||||
# ## VMWare vs. Parallels vs. VirtualBox vs. KVM vs. Hyper-V
|
||||
#
|
||||
# There are a handful of VM virtualization providers you can choose from. VMWare is a nice compromise between OS compatibility and performance.
|
||||
# Parallels, on the hand, might be better for macOS since it is designed specifically for macOS. Finally, VirtualBox is a truly free,
|
||||
# open-source option that does not come with the same optimizations that VMWare and Parallels provide.
|
||||
#
|
||||
# Other virtualization options include KVM (Linux / macOS) and Hyper-V (Windows). These options are better used for headless
|
||||
# systems.
|
||||
#
|
||||
# ## Links
|
||||
#
|
||||
# * [VMWare Workstation homepage](https://www.vmware.com/content/vmware/vmware-published-sites/us/products/workstation-pro.html.html)
|
||||
# @file Vagrant VMWare Utility
|
||||
# @brief Installs the `vagrant-vmware-utility` if both Vagrant and VMWare are installed
|
||||
# @description
|
||||
# This script first checks if `vagrant`, `vmware`, and `vagrant-vmware-utility` are available in the `PATH`. If they are present, then the script
|
||||
# configures the [`vagrant-vmware-utility`](https://developer.hashicorp.com/vagrant/docs/providers/vmware/vagrant-vmware-utility) by generating the required security certificates and enabling the service.
|
||||
# This system package enables the capability of controlling both VMWare Workstation and VMWare Fusion with Vagrant.
|
||||
#
|
||||
# Since this script runs only when `vagrant`, `vmware`, and `vagrant-vmware-utility` are in the `PATH`, this means that it will run
|
||||
# when you use an installation template that includes all three pieces of software in the software list defined in
|
||||
# `home/.chezmoidata.yaml`.
|
||||
#
|
||||
# ## Links
|
||||
#
|
||||
# * [Vagrant VMWare Utility on GitHub](https://github.com/hashicorp/vagrant-vmware-desktop)
|
||||
# * [`home/.chezmoidata.yaml`](https://github.com/megabyte-labs/install.doctor/blob/master/home/.chezmoidata.yaml)
|
||||
# @file VMWare Configuration
|
||||
# @brief Patches VMWare to leverage kernel optimizations, support macOS, and work harmoniously with Secure Boot. It also enables optional services such as the USB service.
|
||||
# @description
|
||||
# This script performs various VMWare optimizations that allow VMWare to work optimally with all features enabled.
|
||||
|
||||
{{- $softwareGroup := nospace (cat "_" .host.softwareGroup) -}}
|
||||
{{- $softwareList := list (index .softwareGroups $softwareGroup | toString | replace "[" "" | replace "]" "") | uniq | join " " -}}
|
||||
|
||||
{{- $secretKey := "" -}}
|
||||
{{- if (stat (joinPath (.chezmoi.sourceDir ".chezmoitemplates" "secrets" "VMWARE_WORKSTATION_LICENSE_KEY"))) -}}
|
||||
{{- $secretKey = (default "4C21U-2KK9Q-M8130-4V2QH-CF810" (includeTemplate "secrets/VMWARE_WORKSTATION_LICENSE_KEY" | decrypt | trim)) -}}
|
||||
{{- else -}}
|
||||
{{- $secretKey = (default "4C21U-2KK9Q-M8130-4V2QH-CF810" (env "VMWARE_WORKSTATION_LICENSE_KEY")) -}}
|
||||
{{- end }}
|
||||
|
||||
# Source: https://gist.github.com/PurpleVibe32/30a802c3c8ec902e1487024cdea26251
|
||||
# key: {{ $secretKey }}
|
||||
|
||||
{{ includeTemplate "universal/profile" }}
|
||||
{{ includeTemplate "universal/logg" }}
|
||||
|
||||
function vmwareSetup() {
|
||||
### Run on Linux only
|
||||
if [ -f /etc/os-release ]; then
|
||||
### Run if vmware is to be installed
|
||||
{{- if (contains " vmware" $softwareList) -}}
|
||||
### Install VMware Workstation
|
||||
if ! command -v vmware > /dev/null; then
|
||||
### Download VMWare Workstation
|
||||
logg info 'VMware Workstation is not installed'
|
||||
VMWARE_WORKSTATION_URL=https://www.vmware.com/go/getworkstation-linux
|
||||
VMWARE_WORKSTATION_DIR=/tmp/workstation-downloads
|
||||
mkdir -p $VMWARE_WORKSTATION_DIR
|
||||
logg info 'Downloading VMware Workstation Installer'
|
||||
curl -sSLA "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20220101 Firefox/102.0" "$VMWARE_WORKSTATION_URL" -o "$VMWARE_WORKSTATION_DIR/tryworkstation-linux-64.sh"
|
||||
|
||||
### Register product key / license
|
||||
VMWARE_WORKSTATION_LICENSE_KEY='{{- $secretKey -}}'
|
||||
if [ -n "$VMWARE_WORKSTATION_LICENSE_KEY" ]; then
|
||||
logg info 'Registering VMware Workstation Pro license with serial number'
|
||||
sudo "$VMWARE_WORKSTATION_DIR/tryworkstation-linux-64.sh" --eulas-agreed --console --required --set-setting vmware-workstation serialNumber "$VMWARE_WORKSTATION_LICENSE_KEY"
|
||||
else
|
||||
logg info 'Agreeing to VMWare Workstation Pro license (without serial number)'
|
||||
sudo "$VMWARE_WORKSTATION_DIR/tryworkstation-linux-64.sh" --eulas-agreed --console --required
|
||||
fi
|
||||
logg success 'VMware Workstation installed successfully'
|
||||
else
|
||||
logg info 'VMware Workstation is already installed'
|
||||
fi
|
||||
{{ end -}}
|
||||
|
||||
### Run logic if VMware is installed
|
||||
if command -v vmware > /dev/null; then
|
||||
### Build kernel modules if they are not present
|
||||
|
@ -86,5 +174,29 @@ if command -v vmware > /dev/null; then
|
|||
else
|
||||
logg warn 'VMware Workstation is not installed so the VMware Unlocker will not be installed'
|
||||
fi
|
||||
fi
|
||||
|
||||
{{ end -}}
|
||||
# @description Only run logic if both Vagrant and VMWare are installed
|
||||
if command -v vagrant > /dev/null && command -v vmware-id > /dev/null; then
|
||||
# @description Vagrant VMWare Utility configuration
|
||||
if command -v vagrant-vmware-utility > /dev/null; then
|
||||
if [ -f /usr/local/bin/certificates/vagrant-utility.key ]; then
|
||||
logg info 'Assuming Vagrant VMWare Utility certificates have been properly generated since /usr/local/bin/certificates/vagrant-utility.key is present'
|
||||
else
|
||||
logg info 'Generating Vagrant VMWare Utility certificates'
|
||||
sudo vagrant-vmware-utility certificate generate
|
||||
logg success 'Generated Vagrant VMWare Utility certificates via `vagrant-vmware-utility certificate generate`'
|
||||
fi
|
||||
logg info 'Ensuring the Vagrant VMWare Utility service is enabled'
|
||||
sudo vagrant-vmware-utility service install || EXIT_CODE=$?
|
||||
if [ -n "$EXIT_CODE" ]; then
|
||||
logg info 'The Vagrant VMWare Utility command `vagrant-vmware-utility service install` failed. It is probably already setup.'
|
||||
fi
|
||||
fi
|
||||
else
|
||||
logg info 'Vagrant is not installed so the Vagrant plugins will not be installed'
|
||||
logg info 'Vagrant or VMWare is not installed so the Vagrant VMWare utility will not be configured'
|
||||
fi
|
||||
}
|
||||
|
||||
vmwareSetup
|
||||
|
|
|
@ -21,19 +21,33 @@ if command -v powerline > /dev/null && [ -f "$HOME/.bashrc" ]; then
|
|||
# logg info 'Running `source ~/.bashrc`'
|
||||
# source ~/.bashrc
|
||||
# logg success 'Imported the `~/.bashrc` profile'
|
||||
if command -v bash-it > /dev/null; then
|
||||
if [ -n "$BASH_IT" ]; then
|
||||
cd "$BASH_IT" || logg warn "The $BASH_IT directory does not exist"
|
||||
logg info 'Enabling bash-it completions'
|
||||
yes | bash-it enable completion defaults dirs docker docker-compose export git makefile ng npm ssh system vagrant
|
||||
logg info 'Enabling bash-it plugins'
|
||||
yes | bash-it enable plugin base blesh browser cht-sh dirs gitstatus powerline sudo xterm
|
||||
logg info 'Finished enabling bash-it functions'
|
||||
else
|
||||
logg warn 'The BASH_IT variable needs to be defined'
|
||||
if [ -d "$BASH_IT" ]; then
|
||||
### Ensure bash-it is installed
|
||||
if ! command -v bash-it > /dev/null; then
|
||||
logg info 'Installing `bash-it` since it is not available yet as a command'
|
||||
bash "$BASH_IT/install.sh" --silent --no-modify-config
|
||||
fi
|
||||
|
||||
### Ensure completions are enabled
|
||||
cd "$BASH_IT/enabled"
|
||||
logg info 'Enabling bash-it completions'
|
||||
# TODO: Move these plugins to the .chezmoidata.yaml
|
||||
for COMPLETION in defaults dirs docker docker-compose export git makefile ng npm ssh system vagrant; do
|
||||
if ! ls "$BASH_IT/enabled" | grep "$COMPLETION" > /dev/null; then
|
||||
echo y | bash-it enable completion dirs > /dev/null && logg info "Enabled the bash-it $COMPLETION completion plugin" || logg error "Failed to install the $COMPLETION bash-it completion plugin"
|
||||
fi
|
||||
done
|
||||
|
||||
### Ensure plugins are enabled
|
||||
logg info 'Enabling bash-it plugins'
|
||||
# TODO: Move these plugins to the .chezmoidata.yaml
|
||||
for PLUGIN in base blesh browser cht-sh dirs gitstatus powerline sudo xterm; do
|
||||
if ls "$BASH_IT/enabled" | grep "$PLUGIN" > /dev/null; then
|
||||
echo y | bash-it enable plugin "$PLUGIN" > /dev/null && logg info "Enabled the bash-it $PLUGIN plugin" || logg error "Failed to install the $PLUGIN bash-it plugin"
|
||||
fi
|
||||
done
|
||||
else
|
||||
logg warn '`bash-it` is not available'
|
||||
logg warn 'The path specified by BASH_IT does not exist yet'
|
||||
fi
|
||||
else
|
||||
if ! command -v powerline > /dev/null; then
|
||||
|
|
|
@ -248,7 +248,7 @@ if command -v cloudflared > /dev/null && [ -d "$HOME/.local/etc/cloudflared" ];
|
|||
fi
|
||||
TUNNEL_ID="$(cloudflared tunnel list | grep "host-{{ .host.hostname }}" | sed 's/ .*//')"
|
||||
logg info "Tunnel ID: $TUNNEL_ID"
|
||||
if [ -f "/usr/local/etc/cloudflared/${TUNNEL_ID}.json" ]
|
||||
if [ -f "/usr/local/etc/cloudflared/${TUNNEL_ID}.json" ]; then
|
||||
logg info 'Symlinking tunnel configuration to /usr/local/etc/cloudflared/credentials.json'
|
||||
rm -f /usr/local/etc/cloudflared/credentials.json
|
||||
sudo ln -s "/usr/local/etc/cloudflared/${TUNNEL_ID}.json" /usr/local/etc/cloudflared/credentials.json
|
||||
|
|
|
@ -19,6 +19,16 @@ if command -v brew > /dev/null; then
|
|||
brew bundle --verbose --no-lock --file=/dev/stdin <<EOF
|
||||
{{ includeTemplate "darwin/Brewfile" . -}}
|
||||
EOF
|
||||
|
||||
### Ensure Python version is 3.11 or higher
|
||||
PYTHON_VERSION="$(python3 --version | sed 's/Python //')"
|
||||
MIN_PYTHON_VERSION="3.11.0"
|
||||
if [ "$(printf '%s\n' "$MIN_PYTHON_VERSION" "$PYTHON_VERSION" | sort -V | head -n1)" = "$MIN_PYTHON_VERSION" ]; then
|
||||
logg info "Minimum Python version satisfied (minimum: $MIN_PYTHON_VERSION, current: $PYTHON_VERSION)"
|
||||
else
|
||||
logg info 'Updating Python 3 version with `brew link --overwrite python@3.11`'
|
||||
brew link --overwrite python@3.11
|
||||
fi
|
||||
else
|
||||
logg error '`brew` was not found in the PATH'
|
||||
fi
|
||||
|
|
|
@ -20,6 +20,7 @@ brew "gum"
|
|||
brew "jq"
|
||||
brew "node"
|
||||
brew "progress"
|
||||
brew "python@3.11"
|
||||
tap "go-task/tap"
|
||||
brew "go-task/tap/go-task"
|
||||
brew "volta"
|
||||
|
|
|
@ -47,7 +47,7 @@ if [ "$BASH_SUPPORT" = 'true' ]; then
|
|||
# Prompt (on bash only)
|
||||
if [[ "$(hostname)" != *'-minimal' ]]; then
|
||||
### Styled Terminal
|
||||
export BASH_IT="$HOME/.local/bash_it"
|
||||
export BASH_IT="${XDG_DATA_HOME:-$HOME/.local/share}/bash_it"
|
||||
export BASH_IT_THEME="powerline"
|
||||
if command -v powerline-daemon > /dev/null && [ -f "$BASH_IT/bash_it.sh" ]; then
|
||||
. "$BASH_IT/bash_it.sh"
|
||||
|
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
@ -78,7 +78,7 @@
|
|||
"jest-html-reporters",
|
||||
{
|
||||
"filename": "index.html",
|
||||
"logoImgPath": "~/.local/megabyte-labs/assets/icon-jest.png",
|
||||
"logoImgPath": "~/.local/assets/icon-jest.png",
|
||||
"openReport": true,
|
||||
"pageTitle": "Code Coverage Report",
|
||||
"publicPath": "./coverage"
|
||||
|
|
|
@ -1,11 +1,5 @@
|
|||
# shellcheck disable=SC1090,SC1091,SC2034,SC2154,SC2296
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
|
||||
### Language / Fonts
|
||||
export LANG="en_US"
|
||||
export LC_ALL="en_US.UTF-8"
|
||||
|
@ -19,6 +13,12 @@ if [ -f "$HOME/.config/shell/profile.sh" ]; then
|
|||
. "$XDG_CONFIG_HOME/shell/profile.sh"
|
||||
fi
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
|
||||
### Misc.
|
||||
export HISTFILE="$XDG_STATE_HOME/zsh/history"
|
||||
export ZLE_RPROMPT_INDENT=0
|
||||
|
|
15
software.yml
15
software.yml
|
@ -10028,16 +10028,17 @@ softwarePlugins:
|
|||
docker:
|
||||
cmd: bash -c 'if ! docker extension list | grep "{PLUGIN}" > /dev/null; then echo y | docker extension install "{PLUGIN}"; fi'
|
||||
plugins:
|
||||
- docker/disk-usage-extension
|
||||
- docker/logs-explorer-extension
|
||||
- ambassador/telepresence-docker-extension:1.0.13
|
||||
- docker/disk-usage-extension:0.2.7
|
||||
- docker/logs-explorer-extension:0.2.3
|
||||
- docker/resource-usage-extension
|
||||
- docker/volumes-backup-extension:main
|
||||
- drone/drone-ci-docker-extension
|
||||
- okteto/docker-desktop-extension
|
||||
- portainer/portainer-docker-extension
|
||||
- docker/volumes-backup-extension:main:1.1.4
|
||||
- drone/drone-ci-docker-extension:0.2.0
|
||||
- okteto/docker-desktop-extension:0.3.3
|
||||
- portainer/portainer-docker-extension:2.18.4
|
||||
- redhatdeveloper/openshift-dd-ext
|
||||
- snyk/snyk-docker-desktop-extension
|
||||
- tailscale/docker-extension
|
||||
- tailscale/docker-extension:1.0.0
|
||||
dockerImages:
|
||||
cmd: null
|
||||
plugins:
|
||||
|
|
Loading…
Reference in a new issue