#!/bin/csh

# simple program for setting/clearing ace bits
# usage: sedacl filename entry-regexp [+-][rwx]

# This expression puts the rights bits in \2\3\4
# sed /user/s/\(user.*:\)\(.\)\(.\)\(.\)$/\1\2\3\4/

# These expressions add (p) or remove (m) r/w/x bits
set pr = /$2/s'/\('$2'.*:\)\(.\)\(.\)\(.\)$/\1r\3\4/'
set pw = /$2/s'/\('$2'.*:\)\(.\)\(.\)\(.\)$/\1\2w\4/'
set px = /$2/s'/\('$2'.*:\)\(.\)\(.\)\(.\)$/\1\2\3x/'
set mr = /$2/s'/\('$2'.*:\)\(.\)\(.\)\(.\)$/\1-\3\4/'
set mw = /$2/s'/\('$2'.*:\)\(.\)\(.\)\(.\)$/\1\2-\4/'
set mx = /$2/s'/\('$2'.*:\)\(.\)\(.\)\(.\)$/\1\2\3-/'

# This splits the last arg into +/- (plusminus) and rights bits ($bits)
set plusminus = `echo $3 |sed 's/^\(.\).*/\1/'`
set bits = `echo $3 |sed 's/^.\(.*\).*/\1/'`

getfacl $1 |grep -v '^#' |sed "$mr"
