#!/bin/bash

#./setup.sh 3000 192.168.195.195:30000/nginx:latest cicd/Jenkinsfile

folderName=${PWD##*/}
folderName=${folderName:-/} 

echo "Hello, lets get your project set up. Please follow the prompts attentively."

read -p "Do you want to run this project locally? [Yn] " localProject

if [ $localProject == 'Y' ] || [ $localProject == 'y' ]
then
    echo "Configuring local settings"
    read -p "    Local port to expose server on? [eg 3000] " localPort
    read -p "    NGINX container to use? [eg nginx/nginx:latest] " localContainer

    echo "    Creating start script"
    cp template/start.sh start.sh
    sed -ie "s|{{localPort}}|$localPort|g" start.sh
    sed -ie "s|{{localContainer}}|$localContainer|g" start.sh
    chmod +x start.sh
    rm start.she
fi

read -p "Are you deploying this with the Sciocatti Jenkins pipeline? [Yn] " useJenkins

if [ $useJenkins == 'Y' ] || [ $useJenkins == 'y' ]
then
    echo "Configuring deployment settings. See the Readme for info on deployable branches."
    read -p "    K3S App name: " k3sApp
    read -p "    K3S namespace: [eg apps] " k3sNamespace
    read -p "    K3S base container: [eg nginx:nginx:latest] " k3sContainerBase
    read -p "    K3S prod NodePort: " k3sport

    k3sportMain=$((k3sport+1))
    k3sportStage=$((k3sport+2))

    echo "Creating Folders"
    echo "    Creating cicd/"
    mkdir cicd
    echo "    Creating cicd/prod"
    mkdir cicd/prod
    echo "    Creating cicd/main"
    mkdir cicd/main
    echo "    Creating cicd/stage"
    mkdir cicd/stage

    echo "Loading files"
    echo "    Loading cicd/Jenkinsfile"
    cp template/Jenkinsfile cicd/Jenkinsfile
    sed -ie "s|{{k3sApp}}|$k3sApp|g" cicd/Jenkinsfile
    rm cicd/Jenkinsfilee

    echo "    Loading main"
    k3sEnv=main
    echo "        Loading cicd/main/Dockerfile"
    cp template/Dockerfile cicd/main/Dockerfile
    sed -ie "s|{{k3sContainerBase}}|$k3sContainerBase|g" cicd/main/Dockerfile
    rm cicd/main/Dockerfilee

    echo "        Loading cicd/main/deployment.yaml"
    cp template/deployment.yaml cicd/main/deployment.yaml
    sed -ie "s|{{k3sApp}}|$k3sApp|g" cicd/main/deployment.yaml
    sed -ie "s|{{k3sport}}|$k3sportMain|g" cicd/main/deployment.yaml
    sed -ie "s|{{k3sNamespace}}|$k3sNamespace|g" cicd/main/deployment.yaml
    sed -ie "s|{{k3sEnv}}|$k3sEnv|g" cicd/main/deployment.yaml
    rm cicd/main/deployment.yamle

    echo "    Loading stage"
    k3sEnv=stage
    echo "        Loading cicd/stage/Dockerfile"
    cp template/Dockerfile cicd/stage/Dockerfile
    sed -ie "s|{{k3sContainerBase}}|$k3sContainerBase|g" cicd/stage/Dockerfile
    rm cicd/stage/Dockerfilee

    echo "        Loading cicd/stage/deployment.yaml"
    cp template/deployment.yaml cicd/stage/deployment.yaml
    sed -ie "s|{{k3sApp}}|$k3sApp|g" cicd/stage/deployment.yaml
    sed -ie "s|{{k3sport}}|$k3sportStage|g" cicd/stage/deployment.yaml
    sed -ie "s|{{k3sNamespace}}|$k3sNamespace|g" cicd/stage/deployment.yaml
    sed -ie "s|{{k3sEnv}}|$k3sEnv|g" cicd/stage/deployment.yaml
    rm cicd/stage/deployment.yamle

    echo "    Loading prod"
    k3sEnv=prod
    echo "        Loading cicd/prod/Dockerfile"
    cp template/Dockerfile cicd/prod/Dockerfile
    sed -ie "s|{{k3sContainerBase}}|$k3sContainerBase|g" cicd/prod/Dockerfile
    rm cicd/prod/Dockerfilee

    echo "        Loading cicd/prod/deployment.yaml"
    cp template/deployment.yaml cicd/prod/deployment.yaml
    sed -ie "s|{{k3sApp}}|$k3sApp|g" cicd/prod/deployment.yaml
    sed -ie "s|{{k3sport}}|$k3sport|g" cicd/prod/deployment.yaml
    sed -ie "s|{{k3sNamespace}}|$k3sNamespace|g" cicd/prod/deployment.yaml
    sed -ie "s|{{k3sEnv}}|$k3sEnv|g" cicd/prod/deployment.yaml
    rm cicd/prod/deployment.yamle

fi

echo "Removing template folder"
rm -rf template

echo "Thank you! Happy building..."