#!/usr/bin/env bash # ديوان — أداة فحص الجهاز (لينكس وماك). قراءة فقط: بتجمع المواصفات وتفتح صفحة النتيجة في المتصفح. # مفيش تعديل على الجهاز ولا رفع بيانات؛ النتيجة في رابط الصفحة بس. الاستخدام: curl -fsSL https://banumusa.ai/tools/diwan-check.sh | bash set -u esc() { printf '%s' "$1" | sed 's/\\/\\\\/g; s/"/\\"/g' | tr -d '\n\r'; } os=linux; [ "$(uname -s)" = "Darwin" ] && os=mac virt=null; wsl=false; vendor=none; vram=null; gpu="" if [ "$os" = mac ]; then osName="$(sw_vers -productName 2>/dev/null) $(sw_vers -productVersion 2>/dev/null)" cpu=$(sysctl -n machdep.cpu.brand_string 2>/dev/null); cores=$(sysctl -n hw.physicalcpu 2>/dev/null); threads=$(sysctl -n hw.logicalcpu 2>/dev/null) ramGb=$(( $(sysctl -n hw.memsize 2>/dev/null) / 1073741824 )) gpu=$(system_profiler SPDisplaysDataType 2>/dev/null | awk -F': ' '/Chipset Model/{print $2; exit}'); case "$gpu" in *Apple*) vendor=apple;; *AMD*|*Radeon*) vendor=amd;; *NVIDIA*) vendor=nvidia;; esac diskFree=$(df -g / 2>/dev/null | awk 'NR==2{print $4}') else osName=$( . /etc/os-release 2>/dev/null; echo "${PRETTY_NAME:-Linux}" ) cpu=$(lscpu 2>/dev/null | awk -F': *' '/Model name/{print $2; exit}'); threads=$(nproc 2>/dev/null) cores=$(lscpu -p=CORE 2>/dev/null | grep -v '^#' | sort -u | wc -l | tr -d ' '); [ "${cores:-0}" -gt 0 ] || cores=$threads ramGb=$(awk '/MemTotal/{printf "%.1f", $2/1048576}' /proc/meminfo 2>/dev/null) diskFree=$(df -BG / 2>/dev/null | awk 'NR==2{gsub("G","",$4); print $4}') if command -v nvidia-smi >/dev/null 2>&1; then gpu=$(nvidia-smi --query-gpu=name --format=csv,noheader 2>/dev/null | head -1); vram=$(nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits 2>/dev/null | head -1 | awk '{printf "%.1f", $1/1024}'); vendor=nvidia else gpu=$(lspci 2>/dev/null | grep -iE 'vga|3d controller' | head -1 | sed 's/.*: //'); case "$gpu" in *NVIDIA*) vendor=nvidia;; *AMD*|*Radeon*|*ATI*) vendor=amd;; esac fi grep -qE 'vmx|svm' /proc/cpuinfo 2>/dev/null && virt=true || virt=false grep -qi microsoft /proc/version 2>/dev/null && wsl=true fi docker=false; command -v docker >/dev/null 2>&1 && docker=true [ -z "${vram:-}" ] && vram=null json=$(printf '{"v":1,"src":"diwan-check","os":"%s","osName":"%s","cpu":"%s","cores":%s,"threads":%s,"ramGb":%s,"gpus":[{"name":"%s","vramGb":%s,"vendor":"%s"}],"diskFreeGb":%s,"virt":%s,"wsl":%s,"docker":%s}' \ "$os" "$(esc "$osName")" "$(esc "$cpu")" "${cores:-0}" "${threads:-0}" "${ramGb:-0}" "$(esc "$gpu")" "$vram" "$vendor" "${diskFree:-0}" "$virt" "$wsl" "$docker") b64=$(printf '%s' "$json" | base64 | tr -d '\n=' | tr '+/' '-_') url="https://banumusa.ai/pc-check.html#r=$b64" echo; echo " ديوان — فحص الجهاز (قراءة فقط)"; echo " النظام: $osName"; echo " المعالج: $cpu ($cores أنوية / $threads خيط)"; echo " الرام: ${ramGb} GB"; echo " الكارت: ${gpu:-غير معروف} (${vram} GB)"; echo " المساحة الفاضية: ${diskFree} GB"; echo echo " رابط النتيجة: $url" if [ "${1:-}" != "--print" ]; then (xdg-open "$url" >/dev/null 2>&1 || open "$url" >/dev/null 2>&1 || true); fi