42 lines
1.3 KiB
Bash
Executable file
42 lines
1.3 KiB
Bash
Executable file
#! /bin/bash
|
|
|
|
## file: app/appointment-messenger/node_modules/lodash/fp/pullAllBy.js
|
|
#USER jessica rw-
|
|
#GROUP jessica rw-
|
|
#other r--
|
|
|
|
FILE_REGEX="^#[[:space:]]+file:[[:space:]]+(.*)$"
|
|
PERMS_REGEX="USER[[:space:]]+([[:alnum:]]+)[[:space:]]+(([r\-])([w\-])([x\-]))([[:space:]]+(([r\-])([w\-])([x\-])))?"
|
|
FILE_UNUSED=0
|
|
|
|
getfacl -p -R -t "$1" | while read LINE ; do
|
|
if [[ "$LINE" =~ $FILE_REGEX ]] ; then
|
|
FILENAME="${BASH_REMATCH[1]}"
|
|
|
|
FILE_UNUSED=1
|
|
fi
|
|
|
|
if [[ "$LINE" =~ $PERMS_REGEX ]] ; then
|
|
PERMS="$LINE"
|
|
PERMS_READ="${BASH_REMATCH[3]}"
|
|
PERMS_WRITE="${BASH_REMATCH[4]}"
|
|
PERMS_EXEC="${BASH_REMATCH[5]}"
|
|
|
|
ACTUAL="${BASH_REMATCH[2]}"
|
|
DEFAULTS="${BASH_REMATCH[7]}"
|
|
|
|
ACTUAL_OTHER="${ACTUAL//[w]/-}"
|
|
|
|
if ((FILE_UNUSED)) ; then
|
|
setfacl -m "group::$ACTUAL" "$FILENAME"
|
|
setfacl -m "other::$ACTUAL_OTHER" "$FILENAME"
|
|
|
|
if [[ ! -z "$DEFAULTS" ]] ; then
|
|
DEFAULTS_OTHER="${DEFAULTS//[w]/-}"
|
|
setfacl -d -m "group::$DEFAULTS" "$FILENAME"
|
|
setfacl -d -m "other::$DEFAULTS_OTHER" "$FILENAME"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
done
|