#! /bin/bash

sudo_package_update

# This now installs a lot of language specific stuff from python, gradle, to go.
# Should consider pulling these into different recipes that are dependent on the environment
# that I wish to bootstrap. If not a dev environment, I can trim out some of this.

# Packages that are pretty much the same treatment or names in all systems

# Shells
packages="fish bash"
# Common shell utils
packages="$packages tmux htop curl wget pv jq mosh bash-completion ripgrep"
# Development tools
packages="$packages neovim vim tig doxygen shellcheck"

# Manager specific packages
case "$PACKAGE_MANAGER" in
    "port")
        packages="$packages universal-ctags"
        # Non-standard packages
        packages="$packages md5sha1sum gradle apache-ant"
        # Python packages
        packages="$packages python27 py27-ipython py27-pip py27-six py27-tox py27-flake8 py27-virtualenv"
        packages="$packages python39 py39-ipython py39-pip py39-six py39-tox py39-flake8 py39-virtualenv py39-black"
        # Macvim with ruby and python support
        # sudo_package 'macvim +ruby +python27'
        # Vim with ruby and python support
        packages="$packages vim +python27 +python38"
        # Newer version of git with completion
        packages="$packages git +bash_completion"
        # Neovim python plugins
        packages="$packages py-neovim py27-neovim py39-neovim"
        # Docker stuff
        packages="$packages colima docker docker-compose kubectl_select kubectl-1.23"
        ;;
    "apt-get")
        packages="$packages universal-ctags build-essential"
        # Neovim python plugins
        packages="$packages python3-neovim"
        # Python packages
        packages="$packages python3 python3-ipython python3-pip python3-six tox python3-flake8 black python3-virtualenv python3-venv"
        ;;
    "apk")
        packages="$packages ctags py3-pynvim"
        ;;
esac

sudo_package "$packages"

if [[ "$PACKAGE_MANAGER" == "port" ]]; then
    # Select defaults
    sudo port select --set python python27
    sudo port select --set python2 python27
    sudo port select --set python3 python39
    sudo port select --set ipython py27-ipython
    sudo port select --set ipython2 py27-ipython
    sudo port select --set ipython3 py39-ipython
    sudo port select --set pip pip27
    sudo port select --set pip2 pip27
    sudo port select --set pip3 pip39
    # Use py3 versions for utilities
    sudo port select --set tox tox39
    sudo port select --set flake8 flake8-39
    sudo port select --set black black39
    sudo port select --set virtualenv virtualenv39

    # Select kubectl
    sudo port select --set kubectl kubectl1.23

    # Make uctags ctags
    sudo ln -s "$(which uctags)" /usr/local/bin/ctags
fi

pip3 install --user padio release-gitter