diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rwxr-xr-x | deploy.sh | 51 | 
2 files changed, 53 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..232b89f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +www/version.info +*.sw* diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..3b07862 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash +set -e + +# Stolen from: https://stackoverflow.com/questions/3878624/how-do-i-programmatically-determine-if-there-are-uncommitted-changes +require_clean_work_tree () { +    # Update the index +    git update-index -q --ignore-submodules --refresh +    err=0 + +    # Disallow unstaged changes in the working tree +    if ! git diff-files --quiet --ignore-submodules -- +    then +        echo >&2 "cannot $1: you have unstaged changes." +        git diff-files --name-status -r --ignore-submodules -- >&2 +        err=1 +    fi + +    # Disallow uncommitted changes in the index +    if ! git diff-index --cached --quiet HEAD --ignore-submodules -- +    then +        echo >&2 "cannot $1: your index contains uncommitted changes." +        git diff-index --cached --name-status -r --ignore-submodules HEAD -- >&2 +        err=1 +    fi + +    if [ $err = 1 ] +    then +        echo >&2 "Please commit or stash them." +        exit 1 +    fi +} + +##                   ## +#     MAIN METHOD     # +##                   ## +DATE=$(date -u -Iseconds) + +echo "Checking git for clean work tree" +require_clean_work_tree + +echo "Updating version file" +echo "Deployed on: $DATE" > www/version.info + +#aws s3 cp www s3://senders-io/ --recursive +echo "Deployed!" + +echo "Committing deploy" +git commit -am "Deployed: $DATE" +git tag -a $DATE -m "Deployed to s3 on $DATE" +echo "Done!" +  |