feat: improve depedencies setup and upgrade tools to latest version (#24)

1. Migrate from `rtx` to `mise`
2. Set most of the tools using `mise`
   * Some tools, such as `starship` and `zoxide` are installed locally, so they are available at boot time
3. Improve `tmux` by adding
   * resurrect and continuum to record/restore sessions
   * better color scheme
4. Setup multiple `elixir-ls` releases using the same repository
5. Upgraded `kickstart.nvim` to latest version

Reviewed-on: #24
This commit is contained in:
2024-01-14 19:00:37 +00:00
parent 20c5f4f816
commit 6feae34b63
8 changed files with 113 additions and 65 deletions

12
scripts/docker-entrypoint.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/bash
set -e
# NOTE (jpd): setup elixir-ls for older versions of elixir
if [ ! -d ${LOCAL_SRC_HOME}/elixir-ls/release ]; then
echo "setup elixir ls version 0.12.0"
/usr/local/bin/elixir-ls-setup v0.12.0
echo "setup elixir ls version 0.14.6"
/usr/local/bin/elixir-ls-setup v0.14.6
fi
exec "$@"

30
scripts/elixir-ls-setup.sh Executable file
View File

@@ -0,0 +1,30 @@
#!/usr/bin/env bash
set -e
function setup() {
local elixir_ls_home=${LOCAL_SRC_HOME}/elixir-ls
local elixir_ls_release=${elixir_ls_home}/release
echo "elixir-ls repo"
cd ${elixir_ls_home}
echo "checkout versions ${1}"
git checkout tags/${1}
echo "set erlang/elixir versions"
cp .release-tool-versions .tool-versions
local current_erlang=$(mise current erlang)
local current_elixir=$(mise current elixir)
echo "using erlang ${current_erlang} / elixir ${current_elixir}"
echo "install erlang/elixir runtimes"
KERL_CONFIGURE_OPTIONS="-with-ssl=${HOME}/.local/lib/ssl" mise install
echo "install elixir-ls deps"
mise exec erlang@${current_erlang} elixir@${current_elixir} --command "mix do local.rebar --force, local.hex --force, deps.get, deps.compile"
echo "compile and release elixir-ls"
mise exec erlang@${current_erlang} elixir@${current_elixir} --command "MIX_ENV=prod mix compile"
mise exec erlang@${current_erlang} elixir@${current_elixir} --command "MIX_ENV=prod mix elixir_ls.release -o ${elixir_ls_release}/${1}"
echo "remove local .tool-versions"
cp .tool-versions ${elixir_ls_release}/${1}
rm .tool-versions
mise exec erlang@${current_erlang} elixir@${current_elixir} --command "mix do deps.clean --all, clean"
git checkout master
}
setup $1