#!/bin/sh set -eu umask 077 TEMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/aiturk-install.XXXXXX")" INSTALLER="$TEMP_DIR/install.py" cleanup() { case "$TEMP_DIR" in "${TMPDIR:-/tmp}"/aiturk-install.*) rm -rf -- "$TEMP_DIR" ;; *) echo 'Gecici kurulum yolu dogrulanamadi.' >&2 ;; esac } trap cleanup EXIT HUP INT TERM bootstrap_python() { machine=$(uname -m) system=$(uname -s) case "$system:$machine" in Darwin:arm64|Darwin:aarch64) target=aarch64-apple-darwin; digest=b9054a9d3d54f4cb5573d44907fddb29874b08909bde73f29f2868cf872223ee; size=25293188 ;; Darwin:x86_64) target=x86_64-apple-darwin; digest=49f0d97f506b855eed60b74a8ac138595c5b39799a6aa5e0d7ca8abe1019a4d4; size=25037769 ;; Linux:aarch64|Linux:arm64) target=aarch64-unknown-linux-gnu; digest=76ed18125286d7dc96ce24023d1e319dbd55a89a767102411b1ea23846113f69; size=91086530 ;; Linux:x86_64) target=x86_64-unknown-linux-gnu; digest=0651dd7157d3debf769e15a52c1de9de7fbcdc36ba72faf79fde3c44f14d9461; size=119758082 ;; *) echo 'Desteklenmeyen sistem. macOS veya glibc tabanli Linux, x64/ARM64 gerekli.' >&2; return 1 ;; esac runtime_parent="${XDG_DATA_HOME:-$HOME/.local/share}/turkservis/bootstrap" runtime="$runtime_parent/cpython-3.13.15-20260901-$target" PYTHON="$runtime/bin/python3" if [ -f "$PYTHON" ]; then "$PYTHON" -I -c 'import pip,ssl,venv,sys; assert sys.version_info[:3] == (3,13,15)' || return 1 return fi if [ -e "$runtime" ] || [ -L "$runtime" ] || [ -L "$runtime_parent" ]; then echo 'Calisma ortami klasoru eksik, baglantili veya baska bir kurulum tarafindan kullaniliyor.' >&2 return 1 fi archive="$TEMP_DIR/runtime.tar.gz" echo 'AITURK ozel calisma ortami indiriliyor; ayrica Python/pip kurmaniz gerekmiyor.' >&2 curl --proto '=https' --proto-redir '=https' --tlsv1.2 -fLsS \ "https://github.com/astral-sh/python-build-standalone/releases/download/20260901/cpython-3.13.15%2B20260901-$target-install_only.tar.gz" -o "$archive" actual_size=$(wc -c < "$archive" | tr -d ' ') if command -v sha256sum >/dev/null 2>&1; then actual_digest=$(sha256sum "$archive" | cut -d ' ' -f 1) else actual_digest=$(shasum -a 256 "$archive" | cut -d ' ' -f 1) fi if [ "$actual_size" != "$size" ] || [ "$actual_digest" != "$digest" ]; then echo 'Calisma ortami boyutu veya SHA-256 dogrulamasi basarisiz.' >&2 return 1 fi tar -xzf "$archive" -C "$TEMP_DIR" "$TEMP_DIR/python/bin/python3" -I -c 'import pip,ssl,venv,sys; assert sys.version_info[:3] == (3,13,15)' mkdir -p "$runtime_parent" # Move within the private runtime directory; never replace another install. if [ -e "$runtime" ] || [ -L "$runtime" ]; then echo 'Baska bir kurulum calisma ortamini olusturdu; yeniden deneyin.' >&2 return 1 fi mv "$TEMP_DIR/python" "$runtime" } PYTHON= for candidate in python3.13 python3.12 python3.11 python3; do if command -v "$candidate" >/dev/null 2>&1 && "$candidate" -c "import pip,platform,sys; raise SystemExit(0 if platform.python_implementation() == 'CPython' and (3, 11) <= sys.version_info[:2] < (3, 14) else 1)" >/dev/null 2>&1; then PYTHON=$candidate break fi done if [ -z "$PYTHON" ]; then bootstrap_python fi curl --proto '=https' --tlsv1.2 -fsS "https://turkservis.online/install.py" -o "$INSTALLER" "$PYTHON" "$INSTALLER"