#!/usr/bin/env just --justfile default: show_receipts set shell := ["bash", "-uc"] set dotenv-load := true #set export # aliases alias s := show_receipts alias p := prepare_workspace # variables export asdf_version := "v0.10.2" # default recipe to display help information show_receipts: @just --list show_system_info: @echo "os : {{os()}}" @echo "arch: {{arch()}}" @echo "home: ${HOME}" check_asdf: @if ! asdf --version; then \ just install_asdf \ ;else \ echo "asdf already installed" \ ;fi just install_asdf_bins install_asdf: @echo "installing asdf" @echo "asdf version: ${asdf_version}" @git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch "${asdf_version}" @echo "adding asdf to .bashrc" @if ! grep -q ".asdf/asdf.sh" "${HOME}/.bashrc"; then \ echo -e '\n# source asdf' >> "${HOME}/.bashrc" \ ;echo 'source "${HOME}/.asdf/asdf.sh"' >> "${HOME}/.bashrc" \ ;echo -e 'source "${HOME}/.asdf/completions/asdf.bash"\n' >> "${HOME}/.bashrc" \ ;fi @echo "to load asdf either restart your shell or do: 'source \${HOME}/.bashrc'" setup_asdf: @echo "installing asdf bins" # add plugins @if ! asdf plugin add python; then :; fi @if ! asdf plugin add shfmt; then :; fi @if ! asdf plugin add shellcheck; then :; fi @if ! asdf plugin add just https://github.com/franklad/asdf-just; then :; fi @if ! asdf plugin add direnv; then :; fi # install bins @if ! asdf install; then :; fi # setup direnv @if ! asdf direnv setup --shell bash --version latest; then :; fi create_venv: @echo "creating venv" @python3 -m pip install --upgrade pip setuptools wheel @python3 -m venv venv # install dependecies and set everything up prepare_workspace: just show_system_info just check_asdf just setup_asdf just create_venv