File opera.sh of Package opera

#!/bin/bash
# Authors:
#  Sorokin Alexei <sor.alexei@meowr.ru>
#  Fabien Tassin <fta@sofaraway.org>
# License: GPLv2+

APPNAME="opera"
LIBDIR="/usr/lib64/$APPNAME"
SANDBOX_APP="$LIBDIR/${APPNAME}_sandbox"

# Allow users to override command-line options.
# Based on Gentoo's chromium package (and by extension, Debian's).
if [ -r "/etc/default/$APPNAME" ]; then
    . "/etc/default/$APPNAME"
fi

# Prefer user defined OPERA_USER_FLAGS (from env) over system
# default OPERA_FLAGS (from /etc/default/opera).
OPERA_FLAGS="${OPERA_USER_FLAGS:-$OPERA_FLAGS}"

# Check if sandbox binary has setuid.
if ( grep -qE '^.r.sr..r.. . 0 0' <<< "$(ls -n "$SANDBOX_APP")" ); then
    SETUID_SANDBOX_SET=1
else
    SETUID_SANDBOX_SET=
fi

# Enable SUID sandboxing for those who wish.
if [ -n "$SETUID_SANDBOX_SET" ] || [[ "$OPERA_FLAGS" =~ '--enable-setuid-sandbox' ]]; then
    OPERA_FLAGS=$(echo "$OPERA_FLAGS" | sed -e 's/--enable-setuid-sandbox//g')
    if [ -z "$SETUID_SANDBOX_SET" ]; then
        if  ( ! xdg-su -c "chmod 4755 "$SANDBOX_APP"" &> /dev/null ); then
            echo "Permission granting failed, falling back to disabled SUID sanboxing." >&2
            OPERA_FLAGS="$OPERA_FLAGS --disable-setuid-sandbox"
        fi
    fi
else
    OPERA_FLAGS="$OPERA_FLAGS --disable-setuid-sandbox"
fi

exec "$LIBDIR/$APPNAME" $SANDBOX $CHROMIUM_FLAGS $OPERA_FLAGS "$@"
openSUSE Build Service is sponsored by