#!/bin/sh
# $OpenBSD: chrome,v 1.14 2016/06/02 21:03:38 sthen Exp $

DATASIZE="716800"
OPENFILES="400"

xm_log() {
	echo -n "$@\nDo you want to run Chromium anyway?\n\
(If you don't increase these limits, Chromium might fail to work properly.)" | \
		/usr/X11R6/bin/xmessage -file - -center -buttons yes:0,no:1 -default no
}

if [ $(ulimit -Sd) -lt ${DATASIZE} ]; then
	ulimit -Sd ${DATASIZE} || \
		xm_log "Cannot increase datasize-cur to at least ${DATASIZE}"
		[ $? -eq 0 ] || exit
fi

if [ $(ulimit -Sn) -lt ${OPENFILES} ]; then
	ulimit -Sn ${OPENFILES} || \
		xm_log "Cannot increase openfiles-cur to at least ${OPENFILES}"
		[ $? -eq 0 ] || exit
fi

if ! mount | grep `df -h /usr/local | tail -1 | awk '{print $6}'` | 
	grep -q wxallowed; then 
	echo "Filesystem containing /usr/local must have the 'wxallowed' flag" | 
	    /usr/X11R6/bin/xmessage -file - -center -buttons exit:0 -default exit
	exit
fi

#
# Temporary workaround for the case when chromium crashes and leaves
# the SingletonLock, which prevents chromium to start up.
#
if [ -h ${HOME}/.config/chromium/SingletonLock ]; then
	_pid=`readlink ${HOME}/.config/chromium/SingletonLock | cut -d '-' -f 2`
	kill -0 ${_pid} 2>/dev/null
	if [ $? -gt 0 ]; then
		rm ${HOME}/.config/chromium/SingletonLock
	fi
fi

#
# Issue #395446
# https://code.google.com/p/chromium/issues/detail?id=395446
#
[ -z ${LANG} ] && _l=en_US.UTF-8 || _l=${LANG}

LANG=${_l} exec "/usr/local/chrome/chrome" "${@}"
