aboutsummaryrefslogtreecommitdiff
path: root/files/.config/direnv/direnvrc
blob: 01face3ab46bfa265435c2316115e30c33fcad40 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# https://github.com/direnv/direnv/wiki/Python#poetry
layout_poetry() {
  PYPROJECT_TOML="${PYPROJECT_TOML:-pyproject.toml}"
  if [[ ! -f "$PYPROJECT_TOML" ]]; then
    log_status "No pyproject.toml found. Executing \`poetry init\` to create a \`$PYPROJECT_TOML\` first."
    poetry init --python "^$(python3 --version 2>/dev/null | cut -d ' ' -f 2 | cur -d . -f 1-2)"
  fi

  if [[ -d ".venv" ]]; then
    VIRTUAL_ENV="$(pwd)/.venv"
  else
    VIRTUAL_ENV=$(
      poetry env info --path 2>/dev/null
      true
    )
  fi

  if [[ -z $VIRTUAL_ENV || ! -d $VIRTUAL_ENV ]]; then
    log_status "No virtual environment exists. Executing \`poetry install\` to create one."
    poetry install
    VIRTUAL_ENV=$(poetry env info --path)
  fi

  PATH_add "$VIRTUAL_ENV/bin"
  export POETRY_ACTIVE=1 # or VENV_ACTIVE=1
  export VIRTUAL_ENV
}

layout_sdkman() {
  if [[ ! -s "${SDKMAN_DIR}/bin/sdkman-init.sh" ]]; then
    log_status "No sdkman found."
    return
  fi

  [[ -s "${SDKMAN_DIR}/bin/sdkman-init.sh" ]] && source "${SDKMAN_DIR}/bin/sdkman-init.sh"

  SDKMANRC="${SDKMANRC:-.sdkmanrc}"
  if [[ ! -f "$SDKMANRC" ]]; then
    log_status "No $SDKMANRC found.  Execution \`sdkman env init\`."
    sdk env init
  fi

  SDKMAN_OFFLINE_MODE=true sdk env install
}

# Create directory (bin by default) and add it to PATH
layout_bin() {
  DIR=".direnv/${1:-bin}"
  mkdir -p "$DIR"
  PATH_add "$DIR"
}