Update .local/bin/provision

This commit is contained in:
Brian Zalewski 2022-12-05 06:27:12 +00:00
parent 6536accd7d
commit f77962334a

View file

@ -1,7 +1,5 @@
#!/usr/bin/env bash
set -eox pipefail
# @description Installs glow (a markdown renderer) from GitHub releases
# @example installGlow
installGlow() {
@ -383,135 +381,29 @@ find "$HOME/.local/bin" -maxdepth 1 -mindepth 1 -type f | while read BINFILE; do
chmod +x "$BINFILE"
done
### Chezmoi
### Run chezmoi init
if [ ! -f "$HOME/.config/chezmoi/chezmoi.yaml" ]; then
### Show README.md snippet
if command -v glow > /dev/null; then
glow "$HOME/.local/share/chezmoi/docs/CHEZMOI-INTRO.md"
fi
### Prompt for variables
if command -v gum > /dev/null; then
if [ -z "$SOFTWARE_GROUP" ]; then
logg prompt 'Select the software group you would like to install. If your environment is a macOS, Windows, or environment with the DISPLAY environment variable then desktop software will be installed too. The software groups are in the ~/.local/share/chezmoi/home/.chezmoidata.yaml file.'
SOFTWARE_GROUP="$(gum choose "Basic" "Standard" "Development" "Experimental")"
fi
fi
logg info 'Running `chezmoi init` since the ~/.config/chezmoi/chezmoi.yaml is not present'
chezmoi init
fi
### Run chezmoi apply
logg info 'Running `chezmoi apply`'
cat <<EOF >> /tmp/chezmoi-intro
# User / Environment Variables
This script will automatically set up a handful of different configurations
should you decide to add your information. Below you can find a description of what
each piece of information is used for as well as the name of the environment variable
you can specify to bypass the prompt.
## Work Environment
Set to true if you are setting up a work environment where things like Tor should
not be installed.
* Environment variable: `WORK_ENVIRONMENT`
## Restricted Environment
Set to true if you are setting up an environment that should not use sudo / administrator
privileges. This is a WIP.
* Environment variable: `RESTRICTED_ENVIRONMENT`
## Software Group
The category you select for software group will determine which list of software should be
installed. The lists are configurable by modifying `~/.local/share/chezmoi/software.yml`.
* Environment variable: `SOFTWARE_GROUP`
## Name
Enter your full name as you would like it to appear in configuration files such as the Git
configuration.
* Environment variable: `FULL_NAME`
## E-mail
Enter your primary e-mail address.
* Environment variable: `PRIMARY_EMAIL`
## Public GPG Key ID
If you have a public GPG key available on the Ubuntu or MIT keyservers, then you can enter it
so that it is automatically imported.
* Environment variable: `KEYID`
## Timezone
Enter your timezone in the format of `America/New_York`. It should be available in the TZ database.
* Environment variable: `TIMEZONE`
## Domain
The domain address you would like to use for any part of the deployment that involves launching
a publicly web service.
* Environment variable: `PUBLIC_SERVICES_DOMAIN`
## CloudFlare API Token
The API token is used to automatically configure various web services that rely on public DNS
records.
* Environment variable: `CLOUDFLARE_API_TOKEN`
## GitHub Read-Only Token
Pass in a GitHub read-only token linked to your account to automatically save a backup of your
GitHub repositories.
* Environment variable: `GITHUB_READ_TOKEN`
## GitLab Read-Only Token
Pass in a GitLab read-only token linked to your account to automatically save a backup of your
GitLab repositories.
* Environment variable: `GITLAB_READ_TOKEN`
## G-mail Address
Add a G-mail address which you would like to use as the handler for outgoing SMTP mail.
* Environment variable: `GMAIL_ADDRESS`
## G-mail App Password
Add the app password to your G-mail address so that outgoing mail can be handled by G-mail.
* Environment variable: `GMAIL_APP_PASSWORD`
## Ngrok Authentication Token
Add your Ngrok authentication token so that the configuration file can be automatically
generated.
* Environment Variable: `NGROK_AUTH_TOKEN`
## Slack API Token
Add your Slack API token so that `slackterm` can be automatically set up.
* Environment Variable: `SLACK_API_TOKEN`
## Tabby Configuration ID
Add your Tabby configuration ID to automatically sync Tabby settings.
* Environment Variable: `TABBY_CONFIG_ID`
## Tabby Sync Token
Add your Tabby sync token to automatically sync Tabby settings. This works in conjunction with
the Tabby Configuration ID mentioned above.
* Environment Variable: `TABBY_SYNC_TOKEN`
##
EOF
glow /tmp/chezmoi-intro
logg prompt 'Select the software group you would like to install. If your environment is a macOS, Windows, or environment with the DISPLAY environment variable then desktop software will be installed too. The software groups are in the ~/.local/share/chezmoi/home/.chezmoidata.yaml file.'
SOFTWARE_GROUP="$(gum choose "Basic" "Standard" "Development" "Experimental")"
chezmoi apply
if [ -n "$FORCE_CHEZMOI" ]; then
chezmoi apply --force
else
chezmoi apply
fi