@@ -25,6 +25,12 @@ arch := `uname -m`
2525# hostname
2626host := ` uname -n `
2727
28+ # operating system
29+ os := ` uname -s `
30+
31+ # home directory
32+ home_dir := env_var (' HOME' )
33+
2834# docker-compose / docker compose
2935# * https://docs.docker.com/compose/install/linux/#install-using-the-repository
3036docker-compose := if ` command -v docker-compose; echo $? ` == " 0" {
@@ -35,7 +41,70 @@ docker-compose := if `command -v docker-compose; echo $?` == "0" {
3541
3642# [halp] list available commands
3743default :
38- just --list
44+ just --list
45+
46+ # [init] install dependencies, tooling, and virtual environment
47+ install :
48+ #!/usr/bin/env bash
49+ set -euxo pipefail
50+
51+ # TODO: QA
52+ # dependencies
53+ if [[ {{ os }} == " Linux" ]]; then
54+ . " /etc/os-release"
55+ case $ID in
56+ ubuntu|debian)
57+ sudo apt update && sudo apt install -y \
58+ build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl \
59+ llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
60+ ;;
61+ arch |endeavouros)
62+ sudo pacman -S --noconfirm \
63+ base-devel openssl zlib bzip2 xz readline sqlite tk
64+ ;;
65+ fedora)
66+ sudo dnf install -y \
67+ make gcc zlib-devel bzip2 bzip2-devel readline-devel \
68+ sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
69+ ;;
70+ centos)
71+ sudo yum install -y \
72+ make gcc zlib-devel bzip2 bzip2-devel readline-devel \
73+ sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
74+ ;;
75+ *)
76+ echo " Unsupported OS"
77+ exit 1
78+ ;;
79+ esac
80+ elif [[ {{ os }} == " Darwin" ]]; then
81+ xcode-select --install
82+ [[ $(command -v brew >/ dev/ null 2 >&1 ; echo $?) == " 0" ]] || / bin/ bash -c " $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
83+ brew install gettext openssl readline sqlite3 xz zlib tcl-tk
84+ elif [[ os () == " Windows" ]]; then
85+ echo " Windows is not supported"
86+ exit 1
87+ else
88+ echo " Unsupported OS"
89+ exit 1
90+ fi
91+
92+ # install asdf
93+ git clone https:// github.com/ asdf-vm/ asdf.git " {{ home_dir }} /.asdf" --branch v0.11.1
94+ . " {{ home_dir }} /.asdf/asdf.sh"
95+
96+ # install python w/asdf
97+ asdf plugin-add python
98+ asdf install python {{ PY_VER}}
99+
100+ # install poetry
101+ asdf plugin-add poetry https:// github.com/ asdf-community/ asdf-poetry.git
102+ asdf install poetry {{ POETRY}}
103+
104+ # create virtual environment
105+ poetry config virtualenvs.in-project true
106+ poetry env use python
107+ poetry install --no-root
39108
40109# [deps] update dependencies
41110update-deps :
0 commit comments