From 79d86961e3aef9472859f5b48991fadb173f7bf1 Mon Sep 17 00:00:00 2001 From: Jev Date: Mon, 18 May 2026 18:48:10 +0200 Subject: [PATCH] add uv install to init.sh --- {{cookiecutter.project_slug}}/init.sh | 34 +++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/{{cookiecutter.project_slug}}/init.sh b/{{cookiecutter.project_slug}}/init.sh index 0bff7f6..5df9b6d 100644 --- a/{{cookiecutter.project_slug}}/init.sh +++ b/{{cookiecutter.project_slug}}/init.sh @@ -1,6 +1,32 @@ -#!/bin/bash +#!/usr/bin/env bash -set -e +if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then + echo "Source this script so it can activate the virtualenv:" + echo " source ./init.sh" + exit 1 +fi -uv sync --all-groups -source .venv/bin/activate +repo_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" || return 1 +cd "$repo_dir" || return 1 +export PATH="$HOME/.local/bin:$PATH" + +if ! command -v uv >/dev/null 2>&1; then + if ! command -v curl >/dev/null 2>&1; then + echo "curl is required to install uv" >&2 + return 1 + fi + + echo "Installing uv..." + curl -LsSf https://astral.sh/uv/install.sh | sh || return 1 + hash -r +fi + +echo "Syncing project environment..." +uv sync || return 1 + +# shellcheck disable=SC1091 +source .venv/bin/activate || return 1 + +echo +echo "Environment ready." +echo "Use 'inv --list' or 'uv run inv --list' to see available tasks."