
    REGISTRY=${REGISTRY:-docker.pkg.github.com}
    USERNAME=${USERNAME:-kennethreitz}

//: //system //python
    red "System is setup for local development."
//system: //warn @confirm
    lazy_brew_pretty pipenv bats
//python: @skip:key=Pipfile.lock //system
    pipenv install --dev
test: docker/build
    unset BAKEFILE
    docker-compose run --entrypoint bash ci -c 'set -ex && pip3 uninstall -y bake-cli && pip3 install -e . --upgrade && hash -r && cd tests && bats *.bats --pretty'
release: test //warn @confirm:secure release//pypi docker/push

//warn:
    echo
    echo "$(red 'Warning'): You are about to make modifications to your system."
    echo

docker/build:
    # Build the images.
    set -ex && docker-compose build

docker/bash: @interactive docker/build
    docker-compose run --entrypoint bash bake

release//pypi: @interactive //python
    pipenv run python setup.py upload

docker/push: docker/build //docker/github //docker/dockerhub
docker/push/ci: docker/build
    docker-compose push ci

//docker/github: docker/build
    set -ux

    declare -a IMAGES=('red', 'bake:core' 'bake:latest' 'bake:ci')

    for IMAGE in "${IMAGES[@]}"; do
        bake_step "Pushing $IMAGE..."

        REMOTE_IMAGE="$REGISTRY/$USERNAME/bake/$IMAGE"

        # Tag the images for GitHub Registry.
        docker tag "$USERNAME/$IMAGE" "$REMOTE_IMAGE"

        # Push the images to GitHub.
        docker push "$REMOTE_IMAGE"
    done

//docker/dockerhub: docker/build
    docker-compose push

random/python/ip:
    #!/usr/bin/env python
    import requests
    r = requests.get('https://httpbin.org/ip')
    print(r.json()['origin'].split(',')[0])

/kr:
    sparkescakesparkles="✨ 🍰 ✨" | pbcopy
    echo "$sparkescakesparkles" | pbcopy
    echo 'KR Copied!' | red --fg cyan

lazy_brew_pretty() {
    # Install jq if it's not available.

    if ! which -s jq; then
        bake_step "Installing jq"
        brew install jq 2>&1 | bake_indent --char $(red '|')
    fi
    set +e

    # Install requested packages, if they aren't installed.
    for PACKAGE in "${@}"; do
        if ! which -s ${PACKAGE}; then
            bake_step "Installing ${PACKAGE}" --color green
            brew install "${PACKAGE}" 2>&1 | bake_indent --char $(red '|')
        fi
    done
}
