Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
3-manifolds
GitHub Repository: 3-manifolds/Sage_macOS
Path: blob/main/jinja/templates/sage.jinja2
170 views
#! /bin/bash
VERSION={{ sage_version }}
DASH_VERSION={{ sage_dash_version }}
SYMLINK=/var/tmp/sage-$VERSION-current
APPNAME=SageMath-$DASH_VERSION
APP=$APPNAME.app
USERBASE=$HOME/Library/$APPNAME
USE_MINIMAL_ENV=no
for arg do
  shift
  if [ "$arg" = "--minenv" ]; then
      USE_MINIMAL_ENV="yes"
      continue;
  fi
  set -- "$@" "$arg"
done
if [ ! -e $SYMLINK ]; then
    CURRENT=Contents/Frameworks/Sage.framework/Versions/Current
    LSREGISTER=/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister
    DUMP=$($LSREGISTER -apps ul -dump | grep $APP | grep -v Volumes | grep -v Trash)
    for ITEM in $DUMP; do
	if [ $(basename $ITEM) == $APP ]; then
	    ln -s $ITEM/$CURRENT $SYMLINK;
	    break;
	fi
    done
fi
if [ ! -e $SYMLINK ]; then
    echo Could not find $APP
    echo Please start sage from the GUI to restore your environment.
    exit 1
fi
SSL_CERT_FILE=`$SYMLINK/venv/bin/python3 -c "import certifi; print(certifi.where())"`
if [ "$USE_MINIMAL_ENV" == "yes" ]; then
    MIN_ENV="USER=$USER LOGNAME=$LOGNAME SHELL=$SHELL HOME=$HOME TERM=$TERM LANG=$LANG PYTHONUSERBASE=\"$USERBASE\" SSL_CERT_FILE=\"$SSL_CERTFILE\""
    /usr/bin/env -i PATH="$PATH" $MIN_ENV "$SYMLINK"/venv/bin/sage "$@"
else
    /usr/bin/env PYTHONUSERBASE="$USERBASE" SSL_CERT_FILE="$SSL_CERT_FILE" "$SYMLINK"/venv/bin/sage "$@"
fi