#!/bin/bash

if [ ! -f /etc/cl.selector/selector.conf ] || [ ! -s /etc/cl.selector/selector.conf ]; then
    echo 'No alt-php versions found'
    exit 0
fi

nativever=`/usr/bin/php -v | head -n 1 | cut -d ' ' -f 2`
#echo "$nativever"

TESTUSER='selectorctl-test-user'
useradd $TESTUSER > /dev/null 2>&1
cagefsctl --enable $TESTUSER

for v in `cat /etc/cl.selector/selector.conf | cut -d ' ' -f 2 | uniq`; do
    #echo "version $v"
    selectorctl --set-user-current=$v --user=$TESTUSER
    setver=`su -c '/usr/bin/php -v' $TESTUSER | head -n 1 | cut -d ' ' -f 2`
    if echo "$setver" | grep -e "^$v"; then
        echo "$setver - Ok"
    else
        echo "$setver - Error"
        echo 'Test FAILED'
        exit 1
    fi

    selectorctl --set-user-current=native --user=$TESTUSER
    setver=`su -c '/usr/bin/php -v' $TESTUSER | head -n 1 | cut -d ' ' -f 2`
    if echo "$setver" | grep -e "^$nativever"; then
        echo "$setver = $nativever - Ok"
    else
        echo "$setver != $nativever - Error"
        echo 'Test FAILED'
        exit 2
    fi

    gpasswd -a $TESTUSER wheel > /dev/null 2>&1
    su -s /bin/bash -c "selectorctl --set-user-current=$v --user=$TESTUSER" $TESTUSER 
    gpasswd -d $TESTUSER wheel > /dev/null 2>&1
    setver=`su -c '/usr/bin/php -v' $TESTUSER | head -n 1 | cut -d ' ' -f 2`
    if echo "$setver" | grep -e "^$v"; then
        echo "$setver - Ok"
    else
        echo "$setver - Error"
        echo 'Test FAILED'
        exit 1
    fi

    gpasswd -a $TESTUSER wheel > /dev/null 2>&1
    su -s /bin/bash -c "selectorctl --set-user-current=native --user=$TESTUSER" $TESTUSER
    gpasswd -d $TESTUSER wheel > /dev/null 2>&1
    setver=`su -c '/usr/bin/php -v' $TESTUSER | head -n 1 | cut -d ' ' -f 2`
    if echo "$setver" | grep -e "^$nativever"; then
        echo "$setver = $nativever - Ok"
    else
        echo "$setver != $nativever - Error"
        echo 'Test FAILED'
        exit 2
    fi
done

echo 'Test PASSED'
exit 0
