Skip to content

Commit 8daad0d

Browse files
Update justfile
1 parent 91c87f2 commit 8daad0d

File tree

1 file changed

+70
-1
lines changed

1 file changed

+70
-1
lines changed

justfile

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ arch := `uname -m`
2525
# hostname
2626
host := `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
3036
docker-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
3743
default:
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
41110
update-deps:

0 commit comments

Comments
 (0)