Update .local/share/chezmoi/home/dot_local/bin/executable_provision
This commit is contained in:
parent
13906979a6
commit
746371d06d
1 changed files with 93 additions and 74 deletions
|
@ -1,43 +1,40 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
set -eox pipefail
|
||||
|
||||
### Qubes dom0 specific code at top
|
||||
# The VM name that will manage the Ansible provisioning (for Qubes dom0)
|
||||
ANSIBLE_PROVISION_VM="provision"
|
||||
### Qubes dom0
|
||||
if command -v qubesctl > /dev/null; then
|
||||
# The VM name that will manage the Ansible provisioning (for Qubes dom0)
|
||||
ANSIBLE_PROVISION_VM="provision"
|
||||
|
||||
# Ensure sys-whonix is configured (for Qubes dom0)
|
||||
CONFIG_WIZARD_COUNT=0
|
||||
ENABLE_OBFSC='false'
|
||||
function configureWizard() {
|
||||
if xwininfo -root -tree | grep "Anon Connection Wizard"; then
|
||||
WINDOW_ID="$(xwininfo -root -tree | grep "Anon Connection Wizard" | sed 's/^ *\([^ ]*\) .*/\1/')"
|
||||
xdotool windowactivate "$WINDOW_ID" && sleep 1 && xdotool key 'Enter' && sleep 1 && xdotool key 'Tab Tab Enter' && sleep 24 && xdotool windowactivate "$WINDOW_ID" && sleep 1 && xdotool key 'Enter' && sleep 300
|
||||
qvm-shutdown --wait sys-whonix
|
||||
sleep 3
|
||||
qvm-start sys-whonix
|
||||
if xwininfo -root -tree | grep "systemcheck | Whonix" > /dev/null; then
|
||||
WINDOW_ID_SYSCHECK="$(xwininfo -root -tree | grep "systemcheck | Whonix" | sed 's/^ *\([^ ]*\) .*/\1/')"
|
||||
if xdotool windowactivate "$WINDOW_ID_SYS_CHECK"; then
|
||||
sleep 1
|
||||
xdotool key 'Enter'
|
||||
# Ensure sys-whonix is configured (for Qubes dom0)
|
||||
CONFIG_WIZARD_COUNT=0
|
||||
ENABLE_OBFSC='false'
|
||||
function configureWizard() {
|
||||
if xwininfo -root -tree | grep "Anon Connection Wizard"; then
|
||||
WINDOW_ID="$(xwininfo -root -tree | grep "Anon Connection Wizard" | sed 's/^ *\([^ ]*\) .*/\1/')"
|
||||
xdotool windowactivate "$WINDOW_ID" && sleep 1 && xdotool key 'Enter' && sleep 1 && xdotool key 'Tab Tab Enter' && sleep 24 && xdotool windowactivate "$WINDOW_ID" && sleep 1 && xdotool key 'Enter' && sleep 300
|
||||
qvm-shutdown --wait sys-whonix
|
||||
sleep 3
|
||||
qvm-start sys-whonix
|
||||
if xwininfo -root -tree | grep "systemcheck | Whonix" > /dev/null; then
|
||||
WINDOW_ID_SYSCHECK="$(xwininfo -root -tree | grep "systemcheck | Whonix" | sed 's/^ *\([^ ]*\) .*/\1/')"
|
||||
if xdotool windowactivate "$WINDOW_ID_SYS_CHECK"; then
|
||||
sleep 1
|
||||
xdotool key 'Enter'
|
||||
fi
|
||||
fi
|
||||
else
|
||||
sleep 3
|
||||
CONFIG_WIZARD_COUNT=$((CONFIG_WIZARD_COUNT + 1))
|
||||
if [[ "$CONFIG_WIZARD_COUNT" == '4' ]]; then
|
||||
echo "The sys-whonix anon-connection-wizard utility did not open."
|
||||
else
|
||||
echo "Checking for anon-connection-wizard again.."
|
||||
configureWizard
|
||||
fi
|
||||
fi
|
||||
else
|
||||
sleep 3
|
||||
CONFIG_WIZARD_COUNT=$((CONFIG_WIZARD_COUNT + 1))
|
||||
if [[ "$CONFIG_WIZARD_COUNT" == '4' ]]; then
|
||||
echo "The sys-whonix anon-connection-wizard utility did not open."
|
||||
else
|
||||
echo "Checking for anon-connection-wizard again.."
|
||||
configureWizard
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
### Update via system package manager and install Homebrew dependencies
|
||||
if command -v qubesctl > /dev/null; then
|
||||
# Qubes dom0
|
||||
}
|
||||
|
||||
### Ensure dom0 is updated
|
||||
if [ ! -f /root/dom0-updated ]; then
|
||||
|
@ -82,40 +79,49 @@ if command -v qubesctl > /dev/null; then
|
|||
fi
|
||||
qvm-run --pass-io "$ANSIBLE_PROVISION_VM" 'curl -sSL https://install.doctor/start > ~/start.sh && bash ~/start.sh'
|
||||
exit 0
|
||||
elif command -v apt-get > /dev/null; then
|
||||
# Debian / Ubuntu
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y curl git
|
||||
elif command -v dnf > /dev/null; then
|
||||
# Fedora
|
||||
sudo dnf install -y curl git
|
||||
elif command -v yum > /dev/null; then
|
||||
# CentOS
|
||||
sudo yum install -y curl git
|
||||
elif command -v pacman > /dev/null; then
|
||||
# Archlinux
|
||||
sudo pacman update
|
||||
sudo pacman -Sy curl git
|
||||
elif command -v zypper > /dev/null; then
|
||||
# OpenSUSE
|
||||
sudo zypper install -y curl git nodejs
|
||||
elif command -v apk > /dev/null; then
|
||||
# Alpine
|
||||
apk add curl git
|
||||
elif [ -d /Applications ] && [ -d /Library ]; then
|
||||
# macOS
|
||||
sudo xcode-select -p >/dev/null 2>&1 || xcode-select --install
|
||||
elif command -v nix-env > /dev/null; then
|
||||
# NixOS
|
||||
elif [[ "$OSTYPE" == 'freebsd'* ]]; then
|
||||
# FreeBSD
|
||||
elif command -v pkg > /dev/null; then
|
||||
# Termux
|
||||
elif command -v xbps-install > /dev/null; then
|
||||
# Void
|
||||
elif [[ "$OSTYPE" == 'cygwin' ]] || [[ "$OSTYPE" == 'msys' ]] || [[ "$OSTYPE" == 'win32' ]]; then
|
||||
# Windows
|
||||
choco install -y curl git node
|
||||
fi
|
||||
|
||||
### System package manager update / Homebrew dependencies
|
||||
if ! command -v curl > /dev/null || ! command -v git > /dev/null; then
|
||||
if command -v apt-get > /dev/null; then
|
||||
# Debian / Ubuntu
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y curl git
|
||||
elif command -v dnf > /dev/null; then
|
||||
# Fedora
|
||||
sudo dnf install -y curl git
|
||||
elif command -v yum > /dev/null; then
|
||||
# CentOS
|
||||
sudo yum install -y curl git
|
||||
elif command -v pacman > /dev/null; then
|
||||
# Archlinux
|
||||
sudo pacman update
|
||||
sudo pacman -Sy curl git
|
||||
elif command -v zypper > /dev/null; then
|
||||
# OpenSUSE
|
||||
sudo zypper install -y curl git nodejs
|
||||
elif command -v apk > /dev/null; then
|
||||
# Alpine
|
||||
apk add curl git
|
||||
elif [ -d /Applications ] && [ -d /Library ]; then
|
||||
# macOS
|
||||
sudo xcode-select -p >/dev/null 2>&1 || xcode-select --install
|
||||
elif command -v nix-env > /dev/null; then
|
||||
# NixOS
|
||||
echo "TODO - Add support for NixOS"
|
||||
elif [[ "$OSTYPE" == 'freebsd'* ]]; then
|
||||
# FreeBSD
|
||||
echo "TODO - Add support for FreeBSD"
|
||||
elif command -v pkg > /dev/null; then
|
||||
# Termux
|
||||
echo "TODO - Add support for Termux"
|
||||
elif command -v xbps-install > /dev/null; then
|
||||
# Void
|
||||
echo "TODO - Add support for Void"
|
||||
elif [[ "$OSTYPE" == 'cygwin' ]] || [[ "$OSTYPE" == 'msys' ]] || [[ "$OSTYPE" == 'win32' ]]; then
|
||||
# Windows
|
||||
choco install -y curl git node
|
||||
fi
|
||||
fi
|
||||
|
||||
### Install Homebrew
|
||||
|
@ -144,8 +150,15 @@ ensurePackageManagerHomebrew() {
|
|||
ensurePackageManagerHomebrew
|
||||
|
||||
### Install installer dependencies via Homebrew
|
||||
installBrewPackage() {
|
||||
if ! command -v "$1" > /dev/null; then
|
||||
brew install "$1"
|
||||
fi
|
||||
}
|
||||
if command -v brew > /dev/null; then
|
||||
brew install chezmoi go-task/tap/go-task jq node yq zx
|
||||
installBrewPackage chezmoi
|
||||
installBrewPackage node
|
||||
installBrewPackage zx
|
||||
fi
|
||||
|
||||
### Ensure source files are present
|
||||
|
@ -164,17 +177,23 @@ fi
|
|||
### Copy folders
|
||||
find /usr/local/src/hiawatha -maxdepth 1 -mindepth 1 -type d | while read FOLDER; do
|
||||
BASENAME="$(basename "$FOLDER")"
|
||||
if [ ! -d "$HOME/$BASENAME" ]; then
|
||||
mkdir -p "$HOME/$BASENAME"
|
||||
# Prevent initial-scaffolding of OS-specific files since Chezmoi will handle them
|
||||
if [[ "$BASENAME" != 'AppData' ]] && [[ "$BASENAME" != 'Library' ]]; then
|
||||
if [ ! -d "$HOME/$BASENAME" ]; then
|
||||
mkdir -p "$HOME/$BASENAME"
|
||||
fi
|
||||
cp -rf "$FOLDER/"* "$HOME/$BASENAME"
|
||||
fi
|
||||
cp -rf "$FOLDER/"* "$HOME/$BASENAME"
|
||||
done
|
||||
|
||||
### Copy files
|
||||
find /usr/local/src/hiawatha -maxdepth 1 -mindepth 1 -type f | while read FILE; do
|
||||
BASENAME="$(basename "$FILE")"
|
||||
cp "$FILE" "$HOME/$BASENAME"
|
||||
chmod 600 "$HOME/$BASENAME"
|
||||
# Prevent repository-specific files from being copied over to user's HOME
|
||||
if [[ "$BASENAME" != *'.md' ]] && [[ "$BASENAME" != *'.sh' ]] && [ "$BASENAME" != 'logo.png' ] && [ "$BASENAME" != '.gitlab-ci.yml' ]; then
|
||||
cp "$FILE" "$HOME/$BASENAME"
|
||||
chmod 600 "$HOME/$BASENAME"
|
||||
fi
|
||||
done
|
||||
|
||||
### Ensure ~/.local/bin files are executable
|
||||
|
|
Loading…
Reference in a new issue