YELLOW_COLOR := '\033[0;33m'
GREEN_COLOR := '\033[0;92m'
NORMAL_TEXT := '\033[0m'
CURRENT_TIME := `date`
CURRENT_OS := os()

# Help
default:
    @echo "List of available recipes"
    @just --list

# Install project requirements (OS will be detected automatically)
requirements:
    _@{{ if CURRENT_OS == 'macos' {"just macos-requirements" } else {""} }}
    _@{{ if CURRENT_OS == 'linux' {"just linux-requirements" } else {""} }}

# Install project requirements for MacOS
_macos-requirements:
    _@just cmdprint "Installing MacOS requirements...\n"
    -brew install git
    -brew install coreutils
    -brew install direnv
    -brew install jenv
    -brew install cljstyle && xattr -r -d com.apple.quarantine /usr/local/bin/cljstyle

    _@just cprint '{{YELLOW_COLOR}}' "\nDon't forget to install 'direnv' & 'jenv' hooks for your shell.\n"
    @echo 'zsh hooks example:'
    @echo '\texport PATH="$HOME/.jenv/bin:$PATH"'
    @echo '\teval "$(jenv init -)"'
    @echo '\teval "$(direnv hook zsh)"\n'


# Install project requirements for Linux
_linux-requirements:
    @echo "Installing Linux requirements...is not implemented."

# Print command name
_cmdprint text:
    #!/usr/bin/env bb
    (println "-----------------------------------------------")
    (import 'java.time.format.DateTimeFormatter 'java.time.LocalDateTime)
    (def date (LocalDateTime/now))
    (def formatter (DateTimeFormatter/ofPattern "yyyy-MM-dd HH:mm:ss"))
    (printf "{{GREEN_COLOR}}%s\n"(.format date formatter))
    (println "{{YELLOW_COLOR}}{{text}}{{NORMAL_TEXT}}")

_cprint color text:
    #!/usr/bin/env bb
    (println "{{color}}{{text}}{{NORMAL_TEXT}}")

# Build deployable jar file of this project
build:
    clojure -X:jar


