#!/bin/sh
# set & test permissions
# NOTE: setuid 4 to test {real-user} and port access - check and revert to standard mode!
# for eForth 1.2, 3/2001 by h-peter recktenwald <phpr@snafu.de>
# optional $1:user $2:group $3:access-bits (quoted stg!)

unset a g m u 

p=f8

e4owner=hp
e4group=users
e4pmode="a+rwX"

f8owner=hp
f8group=users
f8pmode="a+rX"

# ----------------------------------------------------------------------------------------

a() { echo ${1}${2}; }

u=$(a $(a ${p} owner))
g=$(a $(a ${p} group))
m=$(a $(a ${p} pmode))

[ -n "${1}" ]&&u=${1}||{ [ "$(id -un)" = "root" ]&&u="${!u}"||u=$(id -un); }
[ -n "${2}" ]&&g=${2}||{ [ "$(id -un)" = "root" ]&&g="${!g}"||g=$(id -gn); }
[ -n "${3}" ]&&m=${3}||{ [ "$(id -un)" = "root" ]&&m="${!m}"||m="a+rX"; }

[ "$(id -un)" = "root" ]&&SU=""||{ SU=sudo;${SU} chmod u+r ${0} 2>/dev/null||SU=""; }

cd ..

[ "$(basename $(pwd))" = "lib4th" ]||
[ "$(basename $(pwd))" = "e4" ]

{
    echo -e "	recursively setting $(pwd) permissions"
    [ -z "${SU}" ]||echo -n "	in ${SU} mode"
    echo -e "	to owner \"${u}\", group \"${g}\", mode \"${m}\""
    echo -n "			? OK : enter [YJ] :"
    read r
    [ "${r}" = "Y" ]||[ "${r}" = "J" ]||exit 2
}

${SU} chown -R ${u} .
${SU} chgrp -R ${g} .
${SU} chmod -R "${m}" .

[ "$(id -un)" == "root" ]&&{ [ -x 4 ]&&{ chown root 4;chgrp users 4;chmod u+s 4&&echo "'4' set to setuid-mode"; }; }

# MK-perm <eof>
