#!/usr/bin/env bash set -euo pipefail if [ $# -eq 1 ]; then which_bin="$1" else echo "Usage: $0 [stable|preview|nightly|target/debug/zed|target/debug/zed]" exit 1 fi case "${which_bin}_$(uname)" in stable_Darwin) BINARY="/Applications/Zed.app/Contents/MacOS/zed" ;; preview_Darwin) BINARY="/Applications/Zed Preview.app/Contents/MacOS/zed";; nightly_Darwin) BINARY="/Applications/Zed Nightly.app/Contents/MacOS/zed";; stable_Linux) BINARY="$HOME/.local/zed.app/bin/zed";; preview_Linux) BINARY="$HOME/.local/zed-preview.app/bin/zed";; nightly_Linux) BINARY="$HOME/.local/zed-nightly.app/bin/zed";; *) BINARY="$which_bin";; esac if [ ! -x "$BINARY" ]; then echo "Binary not found: $BINARY" exit 1 fi echo "-------Zed Library Report-------" echo "$BINARY" | sed "s|$HOME|~|g" echo "-------------System-------------" uname -s -m -r case "$(uname -s)" in Darwin*) echo "macOS $(sw_vers -productVersion) ($(sw_vers -buildVersion))" xcodebuild -version | awk '{printf "%s ", $0} END {print ""}' ;; Linux*) grep "PRETTY_NAME=" /etc/os-release | sed 's/PRETTY_NAME=//' gcc --version |head -1 g++ --version |head -1 ;; CYGWIN*|MINGW32*|MSYS*|MINGW*) echo "TODO: Add windows-specific tooling versions." ;; *) echo "Other OS detected: $(uname -s)" ;; esac clang --version | head -1 cmake --version | grep version make --version | grep Make rustc --version cargo --version mold --version || echo "no mold" echo "-----------Libraries-----------" case "$(uname -s)" in Linux*) # TODO: Make this work with target/debug/zed echo "$BINARY" | sed "s|$HOME|~|g" ldd "$BINARY" |sort ZED_LIB="$(dirname $BINARY)/../lib" for lib in $(ls $ZED_LIB); do echo "$ZED_LIB/$lib" | sed "s|$HOME|~|g" ldd "$ZED_LIB/$lib" |sort done ;; Darwin*) # TODO: Make this work with target/debug/zed echo "$BINARY" | sed "s|$HOME|~|g" otool -L "$BINARY" |tail -n +3 |sort ZED_LIB="$(dirname $BINARY)/../Frameworks" for lib in $(ls -d $ZED_LIB); do echo "$ZED_LIB/$lib" ldd "$ZED_LIB/$lib" |sort done ;; esac