From f77962334a631f6ee3163143f861bd4b8dc7169c Mon Sep 17 00:00:00 2001 From: Brian Zalewski Date: Mon, 5 Dec 2022 06:27:12 +0000 Subject: [PATCH] Update .local/bin/provision --- .local/bin/provision | 150 ++++++------------------------------------- 1 file changed, 21 insertions(+), 129 deletions(-) diff --git a/.local/bin/provision b/.local/bin/provision index 887df6f7..99851e83 100644 --- a/.local/bin/provision +++ b/.local/bin/provision @@ -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 <> /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