anti=${anti:-ua-foreign-lists}
nativepat=${nativepat:-ua}
+function prefix {
+ #echo "$@"
+ "$@"
+}
+
function add_lists
{
(
- for list in $(blanche $prev | grep LIST | cut -d : -f 2); do # for each list we already know about
+ lists=$(blanche $prev | grep LIST | cut -d : -f 2)
+ for list in $lists; do # for each list we already know about
# Add a list's sublists
for newlist in $(blanche $list | grep LIST | cut -d : -f 2); do
- blanche $prev -a $newlist;
+ prefix blanche $prev -a $newlist;
done;
# Add a list's owner and memacl
owner=$(athrun ops qy -s -f ace_name glin $list)
towner=$(athrun ops qy -s -f ace_type glin $list)
if [[ "$towner" == "LIST" ]]; then
- blanche $prev -a $owner
+ prefix blanche $prev -a $owner
fi
macl=$(athrun ops qy -s -f memace_name glin $list)
tmacl=$(athrun ops qy -s -f memace_type glin $list)
if [[ "$tmacl" == "LIST" ]]; then
- blanche $prev -a $macl
+ prefix blanche $prev -a $macl
fi
+ # Add stuff this owns
+ owned=$(athrun ops qy -s get_ace_use list $list | grep -v ^$prev\$ | grep LIST | cut -d " " -f 2)
+ for newlist in $owned; do
+ prefix blanche $prev -a $newlist;
+ done;
done
- ) 2>&1 | grep -v "Record already exists"
+ ) 2>&1 | grep -v "Record already exists" | grep -v "moira (query): No records in database match query"
}
echo Current members: $(blanche $prev -m | wc)
echo Expanding out lists
add_lists
-add_lists
echo New members: $(blanche $prev -m | wc)
echo Removing foreign lists
for list in $(blanche $anti | grep LIST | cut -d : -f 2); do blanche $prev -d $list; done
echo
echo Likely foreign members
-blanche $prev | grep LIST: | sed -e "s/^LIST://" | grep -v $nativepat
+blanche $prev | grep LIST: | sed -e "s/^LIST://" | egrep -v "$nativepat"