#!/bin/bash

# Commandline args
action="$1"
environment="$2"

# Set the build arguments as environment variables
export BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
export GIT_COMMIT=$(git rev-parse --short HEAD)


case $action in
    help)
        echo "timmypidashev.com | deploy script"
        echo "Environments:"
        echo "    * dev"
        echo "        - development environment, builds include local https, debug mode, and hot reloading"
        echo ""
        echo "    * prod"
        echo "        - production environment, builds include optimizations and are ready to roll"
        echo ""
        echo "Actions:"
        echo "    * build"
        echo "        - builds either the entire stack without cache or select container"
        echo "        - example: '{action} {environment}' or '{action} {container} {environment}'"
        echo ""
        echo "    * run"
        echo "        - runs the entire stack with caching enabled"
        echo "        - example: '{action} {environment}'"
        echo "        - Note: individual containers cannot run on their own"
        echo ""
        echo "    * bump"
        echo "        - bumps a containers version and the project version"
        echo "        - example: '{action} {container}'"
        echo ""
        echo "    * push"
        echo "        - pushes an image to ghcr.io"
        echo "        - example: '{action} {container}"
        echo "        - Note: only production images are pushed"
        exit 1
        ;;

    build)
        if [ "$environment" == "dev" ];
        then
            echo "build dev"
        
        elif [ "$environment" == "prod" ];
        then
            echo "build prod"
        
        else
            echo "Invalid environment. Use 'dev' or 'prod'!"
            exit 1
        fi
        ;;

    run)
        if [ "$environment" == "dev" ];
        then
            echo "run dev"
        
        elif [ "$environment" == "prod" ];
        then
            echo "run prod"

        else
            echo "Invalid environment. Use 'dev' or 'prod'!"
            exit 1
        fi
        ;;

    bump)
        "bump pkg"
        ;;

    push)
        "push pkg"
        ;;

    *)
        echo "Invalid action. Use 'build', 'run', or 'push'!"
        ;;
esac
