Skip to content

Commit

Permalink
Merge pull request #208 from dxw/add-dalmatian-update-command
Browse files Browse the repository at this point in the history
Add `dalmatian update` command
  • Loading branch information
Stretch96 authored Nov 14, 2023
2 parents 66656aa + 96dd48c commit d29e7e5
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 1 deletion.
64 changes: 64 additions & 0 deletions bin/configure-commands/update
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
#!/bin/bash

# exit on failures
set -e
set -o pipefail

usage() {
echo "Usage: $(basename "$0") [OPTIONS]" 1>&2
echo " -g <git_auth_token> - Git Auth token (Optional - only required if dalmatian tools repo is private)"
echo " -h - help"
exit 1
}

GIT_AUTH_TOKEN=""
while getopts "g:h" opt; do
case $opt in
g)
GIT_AUTH_TOKEN=$OPTARG
;;
h)
usage
;;
*)
usage
;;
esac
done

log_info -l "Checking for newer version ..." -q "$QUIET_MODE"
if [ -n "$GIT_AUTH_TOKEN" ]
then
RELEASE_JSON=$(curl -s -H "Authorization: Bearer $GIT_AUTH_TOKEN" "$GIT_DALMATIAN_TOOLS_API_REPOS_LATEST_RELEASE_URL" | jq -r)
else
RELEASE_JSON=$(curl -s "$GIT_DALMATIAN_TOOLS_API_REPOS_LATEST_RELEASE_URL" | jq -r)
fi

GITHUB_MESSAGE=$(echo "$RELEASE_JSON" | jq -r '.message')

if [ "$GITHUB_MESSAGE" != "null" ]
then
err "Github: $GITHUB_MESSAGE"
exit 1
fi

LATEST_REMOTE_TAG=$(echo "$RELEASE_JSON" | jq -r '.name')
CURRENT_LOCAL_TAG=$(git -C "$APP_ROOT" describe --tags)
LOCAL_CHANGES=$(git -C "$APP_ROOT" status --porcelain)
if [ "$LATEST_REMOTE_TAG" != "$CURRENT_LOCAL_TAG" ]
then
if [ -n "$LOCAL_CHANGES" ]
then
err "There is a newer version of $GIT_DALMATIAN_TOOLS_OWNER/$GIT_DALMATIAN_TOOLS_REPO ($CURRENT_LOCAL_TAG -> $LATEST_REMOTE_TAG) but cant update! You have local changes in $APP_ROOT"
exit 1
fi
log_info -l "Updating ..." -q "$QUIET_MODE"
git -C "$APP_ROOT" pull
git -C "$APP_ROOT" checkout "$LATEST_REMOTE_TAG"
log_info -l "Updating brew packages ..." -q "$QUIET_MODE"
brew bundle -d "$APP_ROOT"
"$APP_ROOT/bin/dalmatian" terraform-dependencies clone -I
"$APP_ROOT/bin/dalmatian" terraform-dependencies get-tfvars
else
log_info -l "You are on the latest version ($LATEST_REMOTE_TAG) 👍" -q "$QUIET_MODE"
fi
11 changes: 10 additions & 1 deletion bin/dalmatian
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,8 @@ fi

if [[
-f "$APP_ROOT/bin/configure-commands/$SUBCOMMAND" &&
"$SUBCOMMAND" != "setup" # Ignore setup for now, this requires different prerequists
"$SUBCOMMAND" != "setup" && # Ignore setup for now, this requires different prerequists
"$SUBCOMMAND" != "update"
]]
then
"$APP_ROOT/bin/configure-commands/$SUBCOMMAND"
Expand All @@ -142,6 +143,7 @@ fi
# authentication methods
if [[
"$SUBCOMMAND" == "setup" ||
"$SUBCOMMAND" == "update" ||
"$SUBCOMMAND" == "aws-sso" ||
"$SUBCOMMAND" == "terraform-dependencies" ||
"$SUBCOMMAND" == "deploy"
Expand All @@ -163,6 +165,13 @@ then
export TMP_ACCOUNT_BOOTSTRAP_TERRAFORM_DIR="$TMP_DIR/terraform-dxw-dalmatian-account-bootstrap"
export TMP_INFRASTRUCTURE_TERRAFORM_DIR="$TMP_DIR/terraform-dxw-dalmatian-infrastructure"

export GIT_DALMATIAN_TOOLS_HOST="github.com"
export GIT_DALMATIAN_TOOLS_OWNER="dxw"
export GIT_DALMATIAN_TOOLS_REPO="dalmatian-tools"
export GIT_DALMATIAN_TOOLS_API_URL="https://api.$GIT_DALMATIAN_TOOLS_HOST"
export GIT_DALMATIAN_TOOLS_API_REPOS_URL="$GIT_DALMATIAN_TOOLS_API_URL/repos/$GIT_DALMATIAN_TOOLS_OWNER/$GIT_DALMATIAN_TOOLS_REPO"
export GIT_DALMATIAN_TOOLS_API_REPOS_LATEST_RELEASE_URL="$GIT_DALMATIAN_TOOLS_API_REPOS_URL/releases/latest"

export TERRAFORM_PROJECT_ACCOUNT_BOOTSTRAP_VERSION="v0.5.0"
export TERRAFORM_PROJECT_INFRASTRUCTURE_VERSION="v0.3.0"

Expand Down

0 comments on commit d29e7e5

Please sign in to comment.